我有一个头文件看起来像
标题.h
int TOS;
这个文件只被一个代码文件包含
代码.c
#include "header.h"
TOS=0;
编译code.c时GCC发出警告
code.c:3:1: 警告:数据定义没有类型或存储类 [默认启用] code.c:3:1:警告:在“TOS”声明中类型默认为“int”[默认启用]
我不明白这个警告的原因。不就相当于在code.c中声明定义TOS了吗?即
代码.c
int TOS;
TOS=0;
最佳答案
因为你在全局范围内定义了TOS
,这需要你定义TOS
的类型(它是一个声明),如果没有给出类型,默认情况下它是 int
。
这将导致冲突类型错误
,
char x;
x = 0;
关于c - 关于存储类和类型的奇怪 GCC 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7703260/