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
: void
char
short
int
long
float
double
signed
unsigned
struct-or-union-specifier
enum-specifier
typedef-name
, , ve imzalı uzun int türleri, karşılıkları unsigned
ve enum
ile birlikte tam sayı türleri olarak adlandırılır.signed short int
signed int
signed char
float
, double
ve 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ı int
gerekir. 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 int
olarak 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 int
olarak 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 void
herhangi 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)