SORU
24 EKİM 2012, ÇARŞAMBA


Bu>> eski bir operatör ya da yazım hatası mı?

Benim okuma ders WG14 Defect Report #51 1993 yılında yazılmış (ya da belki de 1893, yüzyıl bıraktılar ve millennium) genelinde geldim. Kod örneği var, görünüşe göre bir operatör ->> yazılmış struct bir işaretçi kullanılır. Bulamıyorum herhangi bir operatör önceliği tablo buldum, ben çok merak ediyorum, ya da hiç oldu bir operatör, ve eğer öyleyse, ne yapar (ya da yapmış gibi durum olabilir) bu operatör?

İlk düşündüğüm bir yazım hatası, ama yeniden iki kat daha fazla metin ve başka bir zamanda örnek kod yanıt soru, ve ben zor bir zaman inanan güzel geçmiş en azından iki C uzman olmadan fark ettim, ne zaman dışarı atladı bir acemi gibi bana. Ayrıca kodu odak noktasında, fark etmek çok kolay, ve hiç giderilmiştir.

Burada eklenen girinti ile: kodu

#include <stdlib.h>

struct A {
    char x[1];
};

main()
{
    struct A *p = (struct A *) malloc(sizeof(struct A)   100);
    p->>x[5] = '?';  /* This is the key line [for both them and us] */
    return 0;
}

C ve C derleyici ile bu kodu derlemeye çalıştım ve her ne kadar ayrıştırmak için başarısız oldu. Belki de bu artık kullanılmayan C erken bir sürümü bazı operatör oldu?

Bu What is the name of this operator: "-->"? soru gibi şüpheli bir şekilde hissediyor, fakat bu kadar bölünmüş olabilir nasıl görmüyorum ve geçerli olması iki diğer operatörler, bir arada olduğunu sanmıyorum.

CEVAP
24 EKİM 2012, ÇARŞAMBA


Transkripsiyon işleminde bir sorun gibi görünüyor. Büyüktür işareti iki katına bulunduğu 42, DR benzer bir sorun var: http://www.open-std.org/jtc1/sc22/wg14/docs/rr/dr_042.html

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BDGcustoms

    BDGcustoms

    24 NİSAN 2011
  • finalcall07

    finalcall07

    11 NİSAN 2008
  • AutoStream's Garage419

    AutoStream's

    15 EKİM 2007