memalignment
來自 cppreference.com
在標頭檔案 <stdlib.h> 中定義 |
||
size_t memalignment( const void *p ); |
(自 C23 起) | |
返回給定地址所滿足的最大對齊值。返回值可能大於實現所支援的任何對齊值。如果 p
是空指標值,則返回 0,表示該指標不能用於訪問任何型別的物件。
如果返回值為大於或等於 alignof(T),則指標滿足型別 T
的對齊要求。
獨立實現需要提供 memalignment
。
目錄 |
[編輯] 引數
p | - | 要查詢對齊的指標 |
[編輯] 返回值
p
的對齊值,如果 p
是空指標值,則返回 0。
[編輯] 注意
在以下常見平臺中:
此函式可以實現為 return (size_t)p & -(size_t)p;。
[編輯] 示例
執行此程式碼
#include <stdio.h> #include <stdlib.h> int main() { alignas(128) int i = 0; printf("%zu\n%zu\n", memalignment(nullptr), memalignment(&i)); }
可能的輸出
0 128
[編輯] 參考資料
- C23 標準 (ISO/IEC 9899:2024)
- 7.24.9.1 memalignment 函式 (p: 374)
[編輯] 另請參閱
(C11) |
分配對齊記憶體 (函式) |
(C23) |
釋放之前分配的指定大小且對齊的記憶體 (函式) |