我可以给C中的delay()函数赋予的最大值是多少。我无法找到任何文档。我正在使用gcc编译器。它是否会受到任何机会的平台依赖?
答案 0 :(得分:2)
任何机会都会依赖于平台吗?
首先,函数本身与平台有关,因此如果您希望符合标准或可移植,则不应使用它。你在评论中说你使用QNX Neutrino; QNX documentation for the function通过在“分类”标题下说“QNX 4”来表明它是特定于QNX的事实。
要真正回答这个问题,我几乎没有理由认为除了类型之外的论点有任何限制。在具有32位整数的平台上,您应该能够睡眠2 ^ 32-1毫秒,或约49天。在具有64位整数的平台上,您应该能够睡眠2 ^ 64-1毫秒,或约5.85亿年。
但是,如果您想要使用符合标准的功能,我建议使用sleep
或usleep
代替(取决于您需要的分辨率),这些功能由POSIX指定并受大多数人支持非POSIX系统也是如此。除了系统int
的长度之外,还应保证它们不允许对您允许睡眠的最长时间进行任何限制。