Přehled prohlášení
"Prohlášení" Určuje výkladu a atributy sadu identifikátorů.Prohlášení, že úložiště rezervovaný pro objekt nebo funkce pojmenovaná identifikátorem také způsobuje, že se nazývá "definice". C prohlášení pro typy, proměnné a funkce mají následující syntaxi:
Syntaxe
declaration:
Specifikátory prohlášení init-declarator seznamopt**;**Specifikátory prohlášení:
Atribut úložiště tříd: seq optSpecifikátory prohlášení opt
/ * atribut seq opt je zvláštní Microsoft * /
specifikátor typu prohlášení specifikátory opt
typ kvalifikátoru prohlášení specifikátory opt
init declarator seznamu:
init-declaratorinit declarator seznamu , init declarator
init declarator:
declaratordeclarator = inicializátor
[!POZNÁMKA]
Tato syntaxe pro declaration se neopakuje v následujících částech.Syntaxe v následujících částech obvykle začíná declarator nonterminal.
V prohlášení init declarator seznamu obsahovat identifikátory názvem; init je zkratka pro inicializátor.Init declarator seznamu je posloupnost declarators, z nichž každý může mít další typ informací nebo inicializátor obou oddělených čárkami.declarator Obsahuje identifikátory, případné probíhá.Prohlášení specifikátory nonterminal se skládá z posloupnosti specifikátory typu a třídy úložiště, které označují navázání, doba skladování a alespoň část typu entity, které označují declarators.Prohlášení jsou tedy tvořena kombinací Specifikátory paměťových tříd, specifikátorech typu, typ kvalifikátory, declarators a Inicializátory.
Prohlášení může obsahovat jednu nebo více volitelných atributů uvedených v atribut seq; SEQ je zkratka pro posloupnost.Tyto atributy specifické pro Microsoft provádět celou řadu funkcí, které jsou zmíněny v celé této knize podrobně.Seznam těchto atributů naleznete v tématu Přehled syntaxe jazyka c.
V obecné formě deklarace proměnné specifikátor typu poskytuje datový typ proměnné.Specifikátor typu může být sloučenina, jako když změnil typ const nebo volatile.declarator Dává název proměnné, případně pozměněné prohlásit pole nebo typ ukazatele.Příklad:
int const *fp;
deklaruje proměnnou pojmenovanou fp jako ukazatel na nonmodifiable (const) int hodnotu.Můžete definovat více proměnných v prohlášení pomocí více declarators, oddělené čárkami.
Prohlášení musí obsahovat alespoň jeden declarator nebo jeho specifikátor typu musí deklarovat tag struktury, unie značku nebo členy výčtu.Declarators poskytují všechny zbývající informace o identifikátoru.Declarator je identifikátor, který lze upravit v hranatých závorkách ([]), hvězdičky (*), nebo závorky ( () ) prohlásit matice, ukazatel nebo typ funkce.Když deklarujete jednoduché proměnné (například znak celé položky a s plovoucí čárkou), nebo struktur a sdružení jednoduché proměnné declarator je právě identifikátor.Další informace na declarators Declarators a deklarace proměnných.
Všechny definice jsou implicitně prohlášení, ale ne všechna prohlášení jsou definice.Například deklarace proměnných, které začínají extern specifikátoru třídy úložiště "odkazuje," namísto "definice" prohlášení.Pokud je externí proměnná odkazuje, než je definována nebo pokud je definována v jiném zdrojovém souboru z jednoho umístění se používá extern prohlášení je nezbytné.Úložiště není přidělena odkazem"" prohlášení ani proměnné inicializovat v prohlášeních.
Deklarace proměnných je požadována třída skladování nebo typ (nebo obojí).S výjimkou __declspec, je povolena pouze jedna třída úložiště specifikátor v prohlášení a v každém kontextu jsou povoleny všechny Specifikátory paměťových tříd.__declspec Třídy úložiště je povoleno s další Specifikátory paměťových tříd a je povoleno více než jednou.Specifikátoru třídy úložiště prohlášení ovlivňuje, jak se deklarované zboží uložené a inicializován a které části programu můžete odkazovat na položky.
Specifikátoru třídy úložiště terminálů, které jsou definovány v c zahrnují automaticky, extern, zaregistrovat, statické, a typedef.Kromě toho obsahuje Microsoft C specifikátoru třídy úložiště terminal __declspec.Všechny specifikátoru třídy úložiště terminály s výjimkou typedef a __declspec na Třídy úložiště.Viz Deklarace Typedef informace o typedef.Viz Rozšířené atributy třídy úložiště informace o __declspec.
Umístění prohlášení ve zdrojové aplikaci a přítomnost nebo absence jiných deklarace proměnné jsou důležité faktory při určování doby platnosti proměnných.Může být více redeclarations, ale pouze jedna definice.Definici lze však zobrazí více než jeden překlad jednotky.Pro objekty s vnitřním navázání toto pravidlo platí samostatně pro každou jednotku překlad vnitřně propojené objekty jsou jedinečné pro převod jednotky.Pro objekty s externí navázání toto pravidlo platí pro celý program.Viz životnost, oboru, viditelnost a navázání Další informace o viditelnosti.
Typ specifikátory poskytují některé informace o datových typech identifikátory.Specifikátor výchozí typ je int.Další informace naleznete v tématu Specifikátorech typu.Typ značky, strukturu a názvy unie komponent a konstanty výčtu, můžete také definovat specifikátorech typu.Další informace naleznete v Deklarace výčtu, Struktury prohlášení, a Unie prohlášení.
Dva typ kvalifikátoru terminálů: const a volatile.Kvalifikátory určit další vlastnosti, které jsou relevantní pouze při přístupu k objektům tohoto typu pomocí hodnoty l.Další informace o const a volatile, viz Typu kvalifikátory.Definice hodnot l, viz l hodnota a hodnota výrazy.