expected an expression
意思:”预定义一个表达式”
原因:在define block 16 后加上了分号“;”
解决:在所宏定义的语句后去掉分后“;”找不到标识符
意思:没找到对应的函数
原因:- A调用B的函数,而B的头文件中未声明该函数;
- (敲重点):头文件未编译(废话,第一种情况我当然很容易就排查了);
为什么会没编译呢,原来,我们在编写头文件的时候一般在头文件的开头都会用 #ifndef 和#endif将其包含起来,像这样:
#ifndef 宏1
#define 宏1
#include xxx
void xxx
#endif
这么做的目的是为了避免重复编译,比如我在头文件a.h中加上
#ifndef A_H //如果没