首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

_Alignof operator

查询操作数类型的对齐要求。

句法

_Alignof(类型名称)

?

(自C11以来)

该运算符通常通过alignof标题中提供的方便宏来使用stdalign.h

说明

返回由type-name命名的类型的对齐要求。如果type-name是数组类型,则结果是数组元素类型的对齐要求。类型名称不能是函数类型或不完整类型。

结果是一个整数常量类型size_t

操作数不计算(因此操作数中使用的外部标识符不必定义)。

笔记

一些C编译器允许使用与表达式的对齐作为非标准扩展。

关键词

_Alignof.

代码语言:javascript
复制
#include <stdio.h>
#include <stddef.h>
#include <stdalign.h>
 
int main(void)
{
    printf("Alignment of char = %zu\n", alignof(char));
    printf("Alignment of max_align_t = %zu\n", alignof(max_align_t));
    printf("alignof(float[10]) = %zu\n", alignof(float[10]));
    printf("alignof(struct{char c; int n;}) = %zu\n",
            alignof(struct {char c; int n;}));    
}

可能的输出:

代码语言:javascript
复制
Alignment of char = 1
Alignment of max_align_t = 16
alignof(float[10]) = 4
alignof(struct{char c; int n;}) = 4

参考

  • C11标准(ISO / IEC 9899:2011):
    • 6.5.3.4 sizeof和_Alignof运算符(p:9??0-91)

max_align_t(C11)

对齐要求与其他标量类型一样大的类型(typedef)

_Alignas说明符

设置对象的对齐要求(自C11开始)

| 用于alignof运算符的C ++文档

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com