2016-04-09 7 views
-3

なぜtypedefは使用していませんが、このエラーが発生しますか?'identity'の 'Error'ストレージサイズが不明です

int main() 
{  
    struct ident identity; 
    identity.serial=10; 
    printf("%d",identity.serial); 
    return 0; 
} 

struct ident 
{ 
    int serial; 
}; 
+0

struct 'ident'は、宣言される前に定義されているためです。 mainの上にあるstruct宣言を移動します。 – Unimportant

+1

Cコンパイラはシングルパスコンパイラであるため、最初から最後までファイルを1回だけ読み込みます。だから、 'struct ident'は使用する前に*定義する必要があります。つまり、構造定義をファイルの先頭に移動します。 – user3386109

+0

最初にstufsを宣言してから、stufsを使用してください。 (何でも) – milevyo

答えて

0

このコードではうまく機能:

struct ident 
{ 
    int serial; 
}; 

int main() 
{  
    struct ident identity; 
    identity.serial = 10; 
    printf("%d", identity.serial); 
    return 0; 
} 

あなたはそれを使用する前に、構造体を宣言する必要があります。

関連する問題