Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Specifikátory typu v deklarací definují typ proměnné nebo deklarace funkce.
Syntaxe
type-specifier: voidcharshortintlongfloatdoublesignedunsignedstruct-or-union-specifierenum-specifiertypedef-name
signed charTypy , , signed intsigned short inta podepsané dlouhé int spolu s jejich unsigned protějšky a enum, jsou označovány jako integrální typy. Specifikátory , a float typ jsou označovány jako double nebo long double. V deklaraci proměnné nebo funkce můžete použít libovolný specifikátor typu s plovoucí desetinou čárkou nebo s plovoucí desetinou čárkou. Původně, pokud type-specifier nebyla poskytnuta v deklaraci, byla přijata int. Kompilátor Microsoftu už nepřijímá výchozí int deklarace.
Volitelná klíčová slova signed a unsigned mohou předcházet nebo sledovat kterýkoli z integrálních typů, s výjimkou enum, a lze jej také použít samostatně jako specifikátory typu, v takovém případě jsou pochopeny jako signed int a unsigned int, v uvedeném pořadí. Při použití samostatně se předpokládá, že klíčové slovo int je signed. Při použití samostatně jsou klíčová slova a jsou pochopeny long jako short a .short int
Typy výčtu jsou považovány za základní typy. Specifikátory typů pro typy výčtu jsou popsány v deklarací výčtu.
Klíčové slovo void má tři použití: k určení návratového typu funkce, k určení seznamu typů argumentů pro funkci, která nepřijímá žádné argumenty, a k určení ukazatele na nezadanou typ. Pomocí void typu můžete deklarovat funkce, které nevrací žádnou hodnotu nebo deklarují ukazatel na nezadanou hodnotu.
void.
Specifické pro Microsoft
Kontrola typů je teď vyhovující ANSI, což znamená, že typ short a typ int jsou odlišné typy. Tato ukázka například ukazuje redefinici v kompilátoru jazyka Microsoft C, který byl přijat předchozími verzemi kompilátoru.
int myfunc();
short myfunc();
Tento další příklad také vygeneruje upozornění týkající se nepřímého přesměrování na různé typy:
int *pi;
short *ps;
ps = pi; /* Now generates warning */
Kompilátor Jazyka Microsoft C také generuje upozornění pro rozdíly v přihlášení. Příklad:
signed int *pi;
unsigned int *pu;
pi = pu; /* Now generates warning */
Výrazy typu void se vyhodnocují pro vedlejší účinky. Nelze použít (neexistující) hodnotu výrazu, který má typ void žádným způsobem, ani nelze převést void výraz (implicitním nebo explicitním převodem) na jakýkoli typ s výjimkou void. Pokud v kontextu, kde void je výraz povinný, použijete výraz jiného typu, jeho hodnota se zahodí.
Pokud chcete splňovat specifikaci ANSI, void** nelze ji použít jako int**. Lze použít pouze void* jako ukazatel na nezadaný typ.
END Specifikace Microsoftu
Můžete vytvořit více specifikátorů typů s deklaracemi typedef , jak je popsáno v deklaracích Typedef. Informace o velikosti jednotlivých typů najdete v tématu Úložiště základních typů .
Viz také
Deklarace a typy
typeof, __typeof__ (C23)
typeof_unqual, __typeof_unqual__ (C23)