C结构声明和初始化

时间:2013-09-24 21:50:26

标签: c struct

我一直在关注创建结构的网上教程,然后在main()中初始化它。从我所遵循的教程中,我创建了自己的示例,如下所示:

#include <stdio.h>

struct test {
    int num;
};

main() {
    test structure;
}

然而,这不起作用:

test.c: In function 'main':
test.c:8: error: 'test' undeclared (first use in this function)
test.c:8: error: (Each undeclared identifier is reported only once
test.c:8: error: for each function it appears in.)
test.c:8: error: expected ';' before 'structure'

但是当我改变时:

test structure;

为:

struct test structure;

代码编译。这是为什么呢?从我看过的众多例子来看,似乎我不应该在'test structure'之前使用'struct'。

感谢您的帮助/意见/答案。

2 个答案:

答案 0 :(得分:2)

您正在阅读C ++示例。在C中,您的结构类型为struct test而不是test

答案 1 :(得分:1)

你可以通过

解决这个问题
typedef struct test_s 
{
    int num;
} test;