问题描述
// test.h
/*
# pragma once
struct A {
int a;
}
*/
# include "test.h"
int main(){ // error: expected ‘,’ or ‘;’ before ‘int’
// do something
return 0;
}
问题来源
导入的头文件会原地展开, 也就是说实际问题可能出现在导入的头文件 test.h 的文件结尾句处。
问题解决
- 打开test.h文件。
- 发现问题:struct结构体少加 ;
- 在结构体后加上 ;
总结
刚开始一直以为问题出现在头文件导入语句上和int main()语句上,反反复复测试了很多次,问题都没解决。然后开始盲目怀疑,是不是linux平台跟windows平台不一样, 甚至试了# include <test.h> 和 int main(int argc, char *argv[], char *envp[]) …。以后改代码不能再这样盲目瞎试了,耽误时间不说,还没啥用,纯纯的无脑。。。