考虑如下两个头文件test.h和main.h
//test.h
#include<stdio.h>
void add(int a, int b)
//main.h
#include"test.h"
typedef struct A_{
int data;
} A;
void del(int a);
编译器编译时,会将main.h内include的文件展开,即main.h变为:
//main.h
#include<stdio.h>
void add(int a, in b)
typedef struct A_{
int data;
} A;
void del(int a);
这时也会报标题所示的错误,所以找没写分号的函数声明,不仅要在本头文件中找,也要向上追溯。