当前位置: C语言 -- 标准库 -- <stdalign.h> -- __alignof_is_defined

__alignof_is_defined宏


概要:

#define __alignof_is_defined 1


描述:

该宏会扩展为整数常量1,适合用于#if预处理指令。如果实现定义了该宏,则表示实现支持宏alignof;否则表示实现不支持宏alignof


范例:
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
/*宏__alignof_is_defined范例*/

#include <stdalign.h>
#include <stdio.h>

#ifndef __alignof_is_defined
#define alignof _Alignof
#endif

struct data {
    char str[6];
    int a;
    double b;
    double c;
    int d;
};

int main(void)
{
    printf("alignof(struct data): %zu\n", alignof(struct data));

    return 0;
}

输出:

alignof(struct data): 8

:当_Alignof运算符的操作数是结构类型时,ISO/IEC 9899:2018标准未作明确定义;但一些实现(例如:code::blocksideonePelles C。)的运算结果是结构成员的最严格对齐要求。


相关内容:
alignof 扩展为关键词_Alignof的宏。
__alignas_is_defined 判断是否定义alignas的宏。