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

  • Bryan Adams

    Bryan Adams

    30 Mart 2006
  • Matt Harding

    Matt Harding

    23 Mayıs 2006
  • michellefeng's channel

    michellefeng

    26 Kasım 2006