- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我在 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,这解决了问题。 posix_memalign 不包含在 c99 中吗?
最佳答案
#define _POSIX_C_SOURCE 200809L
和其他feature test macros必须在任何 #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 功能。
关于c - posix_memalign 的警告隐式声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32438554/
我正在努力寻找如何正确使用 pread 和 pwrite。在本例中,我尝试使用 pread 仅读取 256 个字节。但是,无论何时我尝试读取少于 512 字节的 pread 都不会返回任何内容。我相信
我在 posix_memalign 中遇到此异常。知道为什么我们会得到它吗? 提前致谢。 最佳答案 中断的系统调用通常是系统调用被中断的结果。换句话说,进程在执行调用时正在接收信号。 关于c - po
posix_memalign 捕获信号吗?我使用 posix_memalign 分配内存并在后台运行计时器,我从日志中的 posix_memalign 收到“系统调用中断异常”。 是因为定时器信号吗?
在下面的代码中,是否需要释放allocated_memory2和allocated_memory3?你认为这段代码没有内存泄漏吗? class data { public: data();
我正在使用 posix_memalign 来获取一些内存对齐内存。 手册页 说 大小必须是2的幂 和 sizeof(void*) 的倍数 我试过这个调用看看会发生什么 void* ptrs; in
我正在尝试决定是否应该使用 memalign() 而不是 malloc(),因为对齐内存会使我的工作更轻松。我在这里阅读了 GNU 文档 ( http://www.gnu.org/software/l
我在 ubuntu 15.04 上使用 GCC 4.9。我在 Eclipse CDT 中编码。这是一个 C 程序,方言设置为 c99。出于某种原因,我的编译器一直警告我这个...... warning
我正在开发一种使用平铺的高速缓存高效转置算法,我注意到当我使用 malloc 分配内存时,我获得的性能比使用 posix_memalign 时更差。更具体地说: 使用 malloc:98.7 毫秒 使
我现在面临着 posix_memalign 的问题,这可能是由我大脑中关于指针和变量的一个大结引起的。我已经有一段时间没有使用 C 语言了,需要再次找到我的方法。 我正在尝试使用 posix_mema
int posix_memalign(void **memptr, size_t alignment, size_t size); 分配 size 字节,按 alignment 对齐。成功返回 0,失
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: When do we need to use posix_memalign instead of mallo
我阅读了一些有关缓存未命中优化的内容,并了解了这个 stdlib 函数。它会进行某种内存对齐以进行优化,但是 any1 可以帮我解释一下这个函数的真正作用吗?它需要 3 个参数:void* * mem
我试图了解 memalign() 和 posix_memalign() 的功能。阅读可用的文档没有帮助。 有人可以帮我了解它的工作原理和用途吗?或者,也许提供一个使用示例? 我正在尝试了解 linux
我是 Android 项目的新手。对于我的新任务,我需要为 Android 平台构建一个项目。我能够使用 Android ndk 使用 cmakelists.txt 为 Android 成功生成 ma
如何posix_memalign对齐大小为 4096 字节与 mmap 不同?它在内部使用 mmap 还是其他一些机制? 最佳答案 posix_memalign 是比 mmap 更高级别的 API,旨
有没有办法在不先创建 vector 的本地实例的情况下对 std::vector 进行 posix_memalign?我遇到的问题是我需要告诉posix_memalign分配多少空间,我不知道怎么说
我目前正在尝试在 Windows 中构建 word2vec。但是 posix_memalign() 函数有问题。大家都建议用_aligned_malloc(),只是参数个数不一样。那么 Windows
似乎 posix_memalign 让您选择自定义的对齐方式,但什么时候需要这样做? malloc内部已经做好了对齐工作。 更新 我问这个的确切原因是因为我看到 nginx 这样做,ngx_memal
对齐的malloc是posix_memalign,没问题,但是对齐的realloc呢? realloc 是否保留对齐方式或如何确保重新分配的内存具有相同的对齐方式?假设 Linux 和 x86_64。
如果我传递了一个内存位置,我正在尝试弄清楚如何初始化一个结构,下面的情况是我正在尝试做的,但它抛出缩短为相关代码的“无效初始化程序” #ifndef PAGE_ALLOC_H #define PAGE
我是一名优秀的程序员,十分优秀!