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

  • Brendan van Son

    Brendan van

    5 Aralık 2006
  • NikkoNantone

    NikkoNantone

    21 Kasım 2011
  • TheFlashCentre

    TheFlashCent

    22 Mayıs 2008