在.c或.cpp文件中使用外部的普通变量或函数时,且不想包含(include)那个普通变量或函数的头文件,可以直接使用extern关键字直接导入;例如:
extern int VariableA;
extern char VariableB;
当在.c或.cpp文件中想使用的外部变量是结构体时,则像上面的导入方式,则会编译不通过;因为像int、char等基本数据类型是编译器所熟悉的,编译器编译时会去找外部文件中已有形式的相同名称变量。
因此.c或.cpp文件引用外部结构体变量时,需告诉编译器的结构体的形式;例如:
在touch.h中定义了一个结构体,并定义了一个变量。
struct Point
{
int x;
int y;
};
struct Point StartPoint = {0,0};
在draw.c文件中想引用StartPoint变量,且用include“touch.h”文件;需在draw.c文件如以下形式导入:
struct Point
{
int x;
int y;
}
extern struct Point StartPoint;
即可成功从外部引用结构体类型。