我有一个头文件,看起来像
标题.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/

10-09 09:03