c - 关于存储类和类型的奇怪 GCC 警告

标签 c gcc gcc-warning

我有一个头文件看起来像

标题.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/

相关文章:

gcc - 当 Address Sanitizer 说该平台不支持 detect_leaks 时,我应该解决什么问题?

c - gcc 警告 : incompatible pointer type

c - 来自 C 的优化 MIPS 指令立即返回?

c - 从 Cortex M0+ 上的硬故障中恢复

c - 是否有快速压缩/慢速解压缩的非对称压缩算法?

c++ - MSVC 内联汇编到 GCC(带参数和返回)

c++ - 如何在一个部分的末尾放置一个变量(使用 GCC)

c - 如何避免 "null argument where non-null required"编译器警告

c++ - 缩小从 int 到 long unsigned int {} 的转换在 C++11 中格式错误

我可以在不使用 c 中的循环的情况下将 1d 数组复制到 2d 结构中吗?