在a.h中声明
typedef struct a
{
int a;
}A;
extern A m_a;
void test_a(A *m);
在b.h中
#include "a.h"
typedef struct b
{
int b;
A *m_addr;
}B;
void test_b( A m_b_a;)
在b.c 和 b.h 中均不能使用A中的结构体定义新变量,只能使用a.h中已经声明的结构体变量m_a。
如何在b.h中也使用结构体A声明新的变量呢?
我复制的代码显示你的结构体A,编译器报错显示非法字符(复制来的大括号是中文字符,而不是英文半角)。但从你的描述来看,可能不是原代码有这个问题,而是排版后产生了错误字符。修正该错误后我这里没有任何报错,你能把编译日志发上来吗?
(99.999%以上的情况下,编译日志报告的错误远比源代码本身更能说明构建错误问题。)