我在 ubuntu 15.04 上使用 GCC 4.9。我在 eclipse CDT 中编码。这是一个 C 程序,方言设置为 c99。出于某种原因,我的编译器不断警告我这个......
warning: implicit declaration of function ‘posix_memalign’ [-Wimplicit-function-declaration]
我不知道为什么。我#include<stdlib.h>
在顶部,当我使用 eclipse 时,ctrl+click posix_memalign 它将我带到 stdlib.h 中的函数声明。为什么我会收到此警告?
我只是尝试将 dialext 更改为 std=gnu99,这解决了问题。c99 中不包含 posix_memalign 吗?
在#define _POSIX_C_SOURCE 200809L
和其他功能测试宏有任何之前定义#include
线。
这是因为宏告诉标准 C 库头文件它应该提供哪些功能来补充/代替标准 C 库功能;功能在#include
.
posix_memalign()
由 提供stdlib.h
,但前提是启用了 POSIX.1-2001 或更高版本;这意味着定义_POSIX_C_SOURCE
为200112L
或更大(L 在那里是因为它是一个整数常量long
类型),或_XOPEN_SOURCE
与600
或更大。
显示的错误仅发生在
stdlib.h
包含时未定义宏
或者
stdlib.h
不包括在内
或者
C 库实现不提供 POSIX.1 功能
在 Ubuntu 中使用 GCC,它必须是前两个之一,因为 C 库绝对提供这些 POSIX.1 特性。
归档时间: |
|
查看次数: |
3114 次 |
最近记录: |