我一直在关注创建结构的网上教程,然后在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'。
感谢您的帮助/意见/答案。
答案 0 :(得分:2)
您正在阅读C ++示例。在C中,您的结构类型为struct test
而不是test
。
答案 1 :(得分:1)
你可以通过
解决这个问题typedef struct test_s
{
int num;
} test;