- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
尝试获得一个可移植的函数以在具有对齐特征的堆上进行分配。
找到“aligned_alloc”,我认为它在 stdlib.h 中,但 gcc 似乎不这么认为
error: 'aligned_alloc' was not declared in this scope
使用带有标志 -std=c++11 -m64 的 gcc
尝试导入
#include <stdlib.h>
#include <cstdlib>
最佳答案
aligned_alloc
在 C11 中定义。它(还)没有为 C++ 定义,尽管它可能会出现在 C++17 中。 (也就是说,它不在标准 C 库中预期在标准 C++ 库中可用的(当前)209 个函数列表中。请参阅 C++ 标准的附录 C。)
(2018 年 8 月更新:aligned_alloc
确实由 C++17 定义,正如上面预测的那样。所以如果你有足够新的 C++ 编译器,你应该能够通过指定使用 C++17 来避免特性测试宏的所有困惑;对于 g++
和 clang++
,这可以通过 -std=c++17
命令行标志。)
如果您想将它与 GCC(或者更具体地说,与 g++)一起使用,您应该使用功能测试宏 _ISOC11_SOURCE
。与所有功能测试宏一样,在任何 #include
之前,必须在每个需要它的文件中对这个宏进行#define
。 [参见注释 1](如果您使用 -std=c11
编译 C 程序,则不需要功能测试宏。)
我从 man aligned_alloc
中找到了正确的功能测试宏:
Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
posix_memalign(): _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600
aligned_alloc(): _ISOC11_SOURCE
如上所示,您可以阅读
man 7 feature_test_macros
有关功能测试宏的更多信息,包括 glibc 识别的宏列表,以及每个宏适用的时间。
aligned_alloc
联机帮助页还记录了非常相似的 posix_memalign
函数,该函数自第 6 期以来一直是 Posix 标准的一部分,并且具有不同(且更常见)的功能测试宏,如上所述。 posix_memalign
应该可以移植到任何 Posix 系统,该系统可能包含也可能不包含比接受在 C++ 中使用 C11 函数的系统更多的系统。
#define
放在头文件中,因为头文件不能在第一个 include 之前包含:) 但是,如果你使用类似 #include 的东西"config.h"
以包含平台定义,每个源文件都以 #include "config.h"
开头,在任何其他 #include
之前,并且#define
在任何 #include
之前出现在 config.h
中,你应该没问题。关于c++ - 编译器找不到 "aligned_alloc"函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29247065/
我正在尝试在 Windows 上运行的小于 1GB 的 VM 上设置 YouTrack 和 TeamCity。使用率将非常低(用户和请求)。这是一个 POC 环境,如果它有效,我可能会将它推送到一个超
所以我在尝试使用 FORFILES 解决这个问题时遇到了麻烦。我正在尝试获取不超过 4 天的文件。所以基本上少于 4 天。然而,这似乎不太可能,因为/d -4 获取所有 4 天或更早的项目。 以下是我
如何从下面的 events 表中选择小于 15 分钟前创建的 events? CREATE TABLE events ( created_at timestamp NOT NULL DEFAU
Google Analytics Realtime提供 rt:minutesAgo ,可以过滤查询。 然而,它是一个维度而不是一个度量标准,<=不能在过滤器中使用。 假设我想在最后 n 分钟内获得一些
iOS 核心数据 - 严重的应用程序错误 - 尝试插入 nil 你好, 我的应用程序实际上运行稳定,但在极少数情况下它会崩溃并显示此错误消息... 2019-04-02 20:48:52.437172
我想制作一个 html div 以快速向右移动(例如不到 1 秒)并消失。然后1秒后再次直接出现在这个过程最开始div的位置。此过程将由单击按钮并重复 10 次触发。 我试图在 CSS 中使用过渡属性
我发现使用 TimeTrigger 是 Windows 10 (UWP) 上计划后台任务的方式。但是看起来我们需要给出的最小数字是 15 分钟。只是想知道,即使我们安排它在接下来的 1 分钟内运行,警
我必须在 1 秒内在屏幕上打印 2^20 行整数 printf 不够快,还有其他易于使用的快速输出替代方法吗? 每一行只包含 1 个整数。 我要求它用于竞争性编程问题,我必须将其源代码提交给法官。 最
我是一名优秀的程序员,十分优秀!