2016-04-09 29 views
-3

为什么会出现此错误,虽然我没有使用typedef?错误'身份'的存储大小未知

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编译器是单通编译器,因此它从开始到结束读取文件一次。所以'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; 
} 

你应该使用它之前声明一个结构。