我如何告诉 gcc 停止在参数列表中前向声明结构?

问题描述 投票:0回答:1
#pragma GCC diagnostic push
#pragma GCC diagnostic ignore ???
int fstat(int handle, struct stat *statbuf); /* to get struct stat, #include <asm/stat.h> */
#pragma GCC diagnostic pop

我已经完成了大部分工作;但为了填写忽略,我需要知道该放什么而不是???。

此文件仅声明 asm 存根。该头文件的大多数用户不会关心

struct stat
,但有人会关心。如果我必须为一行声明创建另一个头文件,我会感到失望。

c gcc pragma
1个回答
0
投票

如果没有事先声明

struct stat
,给定的函数声明会在参数列表内部声明此结构类型,并且此声明在声明外部不可见,因此会出现错误。

不要添加编译器特定标志来忽略错误,而是在声明之外声明结构。

struct stat;
int fstat(int handle, struct stat *statbuf); 
© www.soinside.com 2019 - 2024. All rights reserved.