在一个文件中定义一个全局变量,在另一个文件中想要调用这个变量,在其前面加extern就可以了。可是今天看到这样的代码,一直弄不明白,希望大家帮忙解答:
在GlobalVariables.h文件中定义如下:
#ifndef GlobalVariables__H__
#define GlobalVariables__H__
typedef unsigned short INT16U;
typedef struct
{
INT16U PeriodSum;
INT16U Period_H_1;
INT16U Period_L_1;
INT16U Frequency_1;
INT16U Period_H_2;
INT16U Period_L_2;
INT16U Frequency_2;
} MusicSettingStruct;
extern MusicSettingStruct *Music;
#endif
然后在另一个文件funvtion.c中加入头文件#include "GlobalVariables.h",就这样Music竟然可以直接使用了。
GlobalVariables.h中是告诉编译器说它是外部已经定义的变量,使用了外部调用,可是Music根本就没有定义啊。我编译后发现居然可以编译通过。后来我自己重新建了一个工程,发现不可以,可是它的却可以通过,有人知道原因吗??
|