SORU
18 Ocak 2012, ÇARŞAMBA


C: vs inş doğruluğu C

Doğruluğu anlamına gelir inş ne anladığımı ve benim sorum inş doğruluğu hakkında değil. Bir açıklama veya C-SSS bunun için Linkleri bekliyorum.

Benim sorular şunlardır:

  • C ve C sabitleri arasında anlamsal farklar nelerdir ?ve
  • Farkın sebebi nedir?

Farklar ortada olan ilgili standartlar teklif olması iyi olurdu.

Ben düzenli olarak C ve C arasında geçiş yapmak ve bunu yaparken bir akılda tutulması gereken önemli noktaları bilmek istiyorum.

Bu nedenle (eğer bir akıl yürütme sağlayabilir eğer özel teşekkürler) hatırladığımı bilmiyorum ama kafamın üstünden, hatırlamıyorum:

  • C sabit, değişken C varsayılan dış bağlantı var sırasında varsayılan değer olarak iç bağlantı vardır;
  • sabit nesneleri derleme zamanı C değerleri olarak kullanılabilir , ama olamaz derleme zamanı C değerleri olarak kullanılabilir;
  • Dize hazır işaretçiler C char const* olmalı ama C char* olabilir.

Neyi kaçırıyorum?

CEVAP
18 Ocak 2012, ÇARŞAMBA


Kütüphane farklılıklar yapýyorsunuz farklılıklar ek olarak, Steve Jessop bahseder

char* p1;
char const* const* p2 = &p1;

C. Tarihsel olarak, bu C olduğu için C , ama yasal değil aslında izin:

char* p1;
char const** p2 = &p1;

Kısa bir süre standart kabul edilmesinden önce, birisi bu olmuştur sabit güvenlik delik (*p2 şimdi atanabilir bir yana yumrukladı p1 char const*) atanmış olur char const*,; hayır gerçek zamanlı derinlik sorunu analiz etmek, C Komitesi yasaklandı ek const üst düzey inş. (I. e. &p1 olabilir char ** char **const, bir atanmış ama char const**değil ne de bir char const* const*.) C Komite daha yaptı analizi, sorun *16 yalnızca mevcut olduğunu fark etti* seviyesi olmayanconst bir seviye izledi ve gerekli yaradı ifadeler. (Standart §4.4/4'e bakın.)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Art Food Kitty - Kelly Eddington

    Art Food Kit

    7 Kasım 2006
  • CommonArtisan

    CommonArtisa

    7 Temmuz 2012
  • Michael Neal

    Michael Neal

    2 Mayıs 2009