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