我目前正在使用 C++11 开发 OS 内核,我遇到了一个问题,我似乎找不到自己的答案。
目前我正在使用编译器特定属性(例如 gcc's __attribute__(aligned)
)对齐我的分页结构,但是我想改用 C++11 alignas 说明符,在 Clang++ 上这没问题,因为它很乐意接受 4096 对齐作为参数对齐,但是 G++ 没有!
所以首先alignas specifier
, 和 gcc之间的主要区别是什么__attribute__(aligned)
,显然两者都确保与特定值对齐,但是 gcc 中的 alignas 说明符似乎有 128 个限制,而属性似乎几乎是无限的,这是为什么呢?
另外,为什么不能将 const 整数传递给 alignas 说明符?