Aracılığıyla paylaş


C Tür Tanımlayıcıları

Bildirimlerdeki tür tanımlayıcıları bir değişkenin veya işlev bildiriminin türünü tanımlar.

Sözdizimi

type-specifier: voidcharshortintlongfloatdoublesignedunsignedstruct-or-union-specifierenum-specifiertypedef-name

, , ve imzalı uzun int türleri, karşılıkları unsigned ve enumile birlikte tam sayı türleri olarak adlandırılır.signed short intsigned intsigned char float, doubleve long double tür tanımlayıcıları kayan veya kayan nokta türleri olarak adlandırılır. Değişken veya işlev bildiriminde herhangi bir tam sayı veya kayan nokta türü tanımlayıcısı kullanabilirsiniz. Başlangıçta, bir type-specifier bildirimde sağlanmadıysa, olması intgerekir. Microsoft derleyicisi artık varsayılan int bildirimleri kabul etmemektedir.

İsteğe bağlı anahtar sözcükler signed ve unsigned dışında tüm integral türlerinden enumönce gelebilir veya izleyebilir ve tek başına tür tanımlayıcıları olarak da kullanılabilir; bu durumda sırasıyla ve unsigned intolarak signed int anlaşılırlar. Tek başına kullanıldığında anahtar sözcüğü int olduğu varsayılır signed. Tek başına kullanıldığında ve anahtar sözcükleri long uzun int ve short intolarak anlaşılır.short

Numaralandırma türleri temel türler olarak kabul edilir. Numaralandırma türleri için tür tanımlayıcıları Numaralandırma Bildirimleri'nde ele alınıyor.

Anahtar sözcüğün void üç kullanım alanı vardır: bir işlev dönüş türü belirtmek, bağımsız değişken içermeyen bir işlev için bağımsız değişken türü listesi belirtmek ve belirtilmemiş bir türe yönelik bir işaretçi belirtmek. Değer döndürmeyen işlevleri bildirmek veya belirtilmemiş bir türe işaretçi bildirmek için türünü kullanabilirsiniz void . İşlev adından sonra parantez içinde tek başına göründüğü durum hakkında bilgi için bkz. Bağımsız değişkenler.void

Microsoft'a Özgü

Tür denetimi artık ANSI uyumlu, yani tür short ve tür int ayrı türler. Örneğin, bu örnek, Microsoft C derleyicisinde derleyicinin önceki sürümleri tarafından kabul edilen bir yeniden tanımlama gösterir.

int   myfunc();
short myfunc();

Bu sonraki örnek, farklı türlere yönelik dolaylılık hakkında da bir uyarı oluşturur:

int *pi;
short *ps;

ps = pi;  /* Now generates warning */

Microsoft C derleyicisi, işaret farklılıkları için de uyarılar oluşturur. Örneğin:

signed int *pi;
unsigned int *pu;

pi = pu;  /* Now generates warning */

Tür void ifadeleri yan etkiler için değerlendirilir. Herhangi bir şekilde türü void olan bir ifadenin (var olmayan) değerini kullanamazsınız veya bir ifadeyi (örtük veya açık dönüştürme yoluyla) dışında voidherhangi bir void türe dönüştüremezsiniz. İfadenin gerekli olduğu bir bağlamda başka türde bir void ifade kullanırsanız, değeri atılır.

ANSI belirtimine void** uymak için olarak int**kullanılamaz. Yalnızca void* belirtilmeyen bir türün işaretçisi olarak kullanılabilir.

END Microsoft'a Özgü

Typedef Bildirimleri'nde açıklandığı gibi, bildirimlerle typedef daha fazla tür tanımlayıcısı oluşturabilirsiniz. Her türün boyutu hakkında bilgi için bkz . Temel Türlerin Depolaması.

Ayrıca bkz.

Bildirimler ve Türler
typeof, __typeof__ (C23)
typeof_unqual, __typeof_unqual__ (C23)