SORU
2 EKİM 2014, PERŞEMBE


Özellikleri `` C 11 & C 14 arızalı bsearch?

Benim cevap hem C 11 ve C 14 this question, aşağıdaki:

[C 11, C 14: 25.5/2]: içeriğini aşağıdaki istisnalar dışında, Standart C ile aynı kitaplığı Başlığı <stdlib.h>

[C 11, C 14: 25.5/3]: işlev imzası:

bsearch(const void *, const void *, size_t, size_t,
        int (*)(const void *, const void *));

iki bildirimleri yerine:

extern "C" void *bsearch(const void *key, const void *base,
                         size_t nmemb, size_t size,
                         int (*compar)(const void *, const void *));

extern "C  " void *bsearch(const void *key, const void *base,
                           size_t nmemb, size_t size,
                           int (*compar)(const void *, const void *));

orijinal Deklarasyonu olarak aynı davranışı var.

Ancak

[C 11, C 14: 7.5/5]: Eğer iki tanımlamalar ilan fonksiyonları ile aynı adı ve parametre-tip-listesi (8.3.5) üyelerinin aynı ad veya ilan nesneler ile aynı adı için üyelerin aynı ad ve tanımlamalar ver isimleri farklı dil bağlantıları, program hatalı biçimlendirilmiş; tanı. gerekirse tanımlamalar görünür farklı çeviri birimleri.[..]

Bu bir kusur mu?

CEVAP
2 EKİM 2014, PERŞEMBE


Ama parametre türleri listesi aynı değildir. Biri compar "C" dili bağlantı, diğeri, bir işlev işaretçisi ile "C" dili bağlantı. bir işlev için bir işaretçi.

C 11, 7.5 belirtir:

1. farklı dil ile İki fonksiyon türleri bağlantıları varsa aksi halde aynı olsalar bile farklı türleri vardır.

Bir 4bağlantı-şartname,belirtilen dil bağlantı işlevi için de geçerlidir tüm fonksiyon declarators türleri, dış bağlantı ile fonksiyon isimleri, ve dış ile değişken isimleri bağlantı içinde ilan ettibağlantı-şartname.[Örnek:

extern "C" void f1(void(*pf)(int));
// the name f1 and its function type have C language
// linkage; pf is a pointer to a C function

7.5/1, 7.5/5 arasındaki görünüşteki çelişki fonksiyonu hakkında 1 görüşmeler gerçekleştiren zaman çözüldütürleri,5 adresleri işleviisimler.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 3DS Max Tutorials

    3DS Max Tuto

    4 AĞUSTOS 2013
  • David MeShow

    David MeShow

    10 EKİM 2006
  • Strata1000

    Strata1000

    28 EYLÜL 2009