指定子
このトピックでは、宣言の decl-specifiers (宣言指定子) コンポーネントについて説明します。
次のプレースホルダーと言語キーワードは宣言指定子です。
storage-class-specifier
type-specifier
function-specifier
__declspec( extended-decl-modifier-seq )
解説
宣言の decl-specifiers の部分は、型名を示すために使用できる最も長い decl-specifiers のシーケンスであり、ポインターや参照修飾子を含みません。 宣言の残りは、導入された名前を含む declarator (宣言子) です。
次の表は、4 つの宣言を一覧表示し、次に各宣言の decl-specifers コンポーネントと declarator コンポーネントを別々に一覧表示します。
宣言 |
decl-specifiers |
declarator |
---|---|---|
char *lpszAppName; |
char |
*lpszAppName |
typedef char * LPSTR; |
char |
*LPSTR |
const int func1(); |
const int |
func1 |
volatile void *pvvObj; |
volatile void |
*pvvObj |
signed、unsigned、long および short はすべて int を意味するため、これらのキーワードの 1 つに続く typedef 名は decl-specifiers ではなく、declarator-list, のメンバーであると見なされます。
注意
名前は再宣言できるため、その解釈は、現在のスコープ内の最新の宣言に従います。再宣言は、名前 (特に typedef 名) がコンパイラによってどのように解釈されるかに影響を与える可能性があります。