gpt4 book ai didi

c - 为什么我不能用 std=c99 声明 sigset_t?

转载 作者:太空狗 更新时间:2023-10-29 11:15:28 26 4
gpt4 key购买 nike

如果我用 std=c99 编译下面的程序,我会得到一个错误,但是程序在没有 c99 标志的情况下编译得很好。为什么?

#include <signal.h>
void x()
{
sigset_t dd;
}

int main(void)
{
x();
return 0;
}


jim@cola temp]$ gcc -std=c99 blah.c -o blah
blah.c: In function ‘x’:
blah.c:9: error: ‘sigset_t’ undeclared (first use in this function)
blah.c:9: error: (Each undeclared identifier is reported only once
blah.c:9: error: for each function it appears in.)
blah.c:9: error: expected ‘;’ before ‘dd’

最佳答案

因为 sigset_t不属于 <signal.h>在标准 C 中,您要求与 -std=c99 严格兼容标准.也就是说,一个严格标准的 C 程序可以做到:

#include <signal.h>

int sigset_t;
int main(void) { return 0; }

并期望它能正常工作。

关于c - 为什么我不能用 std=c99 声明 sigset_t?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13618219/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com