如何使用rand-C99版本

用户1911

我正在写一个C程序,我想这样使用for

for(int i=0 ; i < something ; i++ )

所以我需要使用C99版本来初始化“()”中for计数器,但是C99版本不能与rand()函数一起使用。

实际上,在手册页上rand()提到:“该功能不是C99的一部分,而是POSIX的一部分”

为了避免在for..之前初始化计数器的任何想法

//更新

编译的输出是:

warning: implicit declaration of function ‘rand_r’ [-Wimplicit-function-declaration]

代码 :

array[i] = rand_r(&seed) % MAX + MIN;
  • > array [i]类型为char *(我已经为其动态分配了空间)

谢谢

紫罗兰色

rand()它是C99标准的很大一部分,您只需要确保包含正确的头文件即可。

#include <stdlib.h>
int main(void) {
    return rand() % 10;
}

stdlib.h头文件被覆盖在7.20C99标准的,并且rand()是覆盖在7.20.2


如果您的手册页指出它不属于C99,则不正确。我的(在Debian Jessie领导下)明确指出:

函数rand()和srand()符合SVr4、4.3BSD,C89,C99和POSIX.1-2001。

但是,当然,标准本身就是控制文件。


可能误读了手册页,或者写手册页的人可能会感到困惑。random()srandom()功能都没有C99(他们POSIX)的一部分,但rand()srand() 肯定是。

或者,您可能正在使用可rand_r重入版本。POSIX也不是C99。

如果要gcc在C99模式下使用以获取for (int i = 0...功能,但希望能够调用非C99函数,请使用-std=gnu99而不是进行编译-std=c99

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用C99的Netbeans C GCC

来自分类Dev

如何激活gcc 4.7版本?

来自分类Dev

如何激活gcc 4.7版本?

来自分类常见问题

如何使IntelliJ scala项目使用Scala 2.9.2版本?

来自分类Dev

如何使IntelliJ scala项目使用Scala 2.9.2版本?

来自分类Dev

如何使用CMake查找32位版本的zlib

来自分类Dev

iPython使用2.6版本而不是2.7版本

来自分类Dev

Coderunner使用旧的2.71版本的Python代替OSX 10.7.5上的3.2版本

来自分类Dev

需要GLIBC 2.7版本。在支持早期glibc的同时,使用更高版本的GLIBC编译C ++代码

来自分类Dev

使用ISO C99进行咖喱/装订

来自分类Dev

c99中不赞成使用getresuid吗?

来自分类Dev

在Linux上使用c99截断

来自分类Dev

使用ISO C99进行咖喱/装订

来自分类Dev

使用ISO C99进行咖喱/装订

来自分类Dev

在C99中的宏中使用对与错

来自分类Dev

不使用_Generic(C11),C99如何键入通用宏?

来自分类Dev

不使用_Generic(C11),C99如何键入通用宏?

来自分类Dev

如何使用Eclipse版本:Mars.1版本(4.5.1)创建Servlet?

来自分类Dev

如何在Wamp中安装5.2版本的PHP

来自分类Dev

如何获得LinqToExcel 64位版本

来自分类Dev

如何在SuiteScript 2.0版本中创建搜索

来自分类Dev

如何从64位版本制作32位程序?

来自分类Dev

如何安装软件包texinfo的4.11版本?

来自分类Dev

如何获得Windbg x86版本?

来自分类Dev

如何安装32位版本的Google NaCl SDK?

来自分类Dev

如何安装libc6版本> = 2.29?

来自分类Dev

如何获得iOS 9版本模拟器?

来自分类Dev

如何获得特定的Windows 10版本?

来自分类Dev

如何专门下载64位版本的Ubuntu?