我有一个文件global.h
包含在项目中的许多文件中并包含一般标题。文件的相关内容如下:
#define DEBUG
#ifdef DEBUG
extern int debug_level;
#endif
已经包含在main.c
里面并且有对应于下面一行的warningmain.c
#ifdef DEBUG
debug_level = 6; //compiler generates warning corresponding to this line.
#endif
编译器发出的警告信息是:
src/main.c:14:1: warning: data definition has no type or storage class [enabled by default]
src/main.c:14:1: warning: type defaults to ‘int’ in declaration of ‘debug_level’ [enabled by default]
我不明白我做错了什么。令人惊讶的是,该程序运行良好,因为我认为编译器假定数字是int
(默认情况下)。