【发布时间】:2018-07-26 02:18:36
【问题描述】:
如果我使用“g++ -Wshadow -c”编译以下代码:
struct foo
{
int x;
};
void foo(char* x, struct foo* y);
我得到了预期:
警告:“void foo(char*, foo*)”隐藏了“struct foo”的构造函数 [-Wshadow]
void foo(char* x, struct foo* y);
为什么我在包含头文件“sys/stat.h”时没有收到相同的警告,该文件定义了“struct stat”和函数 stat()? gcc 是否知道 stat 并对其进行特殊处理,还是标题中的某些内容会抑制警告?
【问题讨论】: