gpt4 book ai didi

c - 为什么设置了 -std=c99 后 gcc 找不到 random() 接口(interface)?

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

我愿意"#include <stdlib.h>"在源代码的顶部。

示例编译:

/usr/bin/colorgcc -std=c99 -fgnu89-inline  -g -Wall -I/usr/include -I./ -I../ -I../../ -I../../../ -I../../../../    -O3 -o f8  f8.c
In file included from f8.c:7:
ctype-cmp.c: In function ‘randomized’:
ctype-cmp.c:48: warning: implicit declaration of function ‘random’
ctype-cmp.c: In function ‘main’:
ctype-cmp.c:153: warning: implicit declaration of function ‘srandom’
ais@xcalibur:t$

当我关闭 -std=c99 时,找不到函数 isfinite()。因此,出于这个原因和其他原因,我确实想使用 -std=c99 。有什么我想念的技巧吗?

最佳答案

man srandom 表示该函数不是 C99 的一部分,而是 POSIX 的一部分。

激活 _BSD_SOURCE_XOPEN_SOURCE >= 500 或声明随机/随机函数的任何其他合适的功能测试宏(参见 man feature_test_macros随机随机数)。

这个有很好的机会,但是您也需要通过阅读上面的联机帮助页来找出隐式定义/未定义的宏。

/usr/bin/colorgcc -std=c99 -D_XOPEN_SOURCE=600 -fgnu89-inline -g -Wall 
-I/usr/include -I./ -I../ -I../../ -I../../../ -I../../../../ -O3 -o f8 f8.c

关于c - 为什么设置了 -std=c99 后 gcc 找不到 random() 接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/575350/

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