gpt4 book ai didi

c++ - MSVC win32 中的 alignof(double)

转载 作者:太空狗 更新时间:2023-10-29 23:17:08 24 4
gpt4 key购买 nike

以下代码(msvc 2012,32 位):

#include <iostream>

int main()
{
double d;
std::cout<<_alignof(double)<<std::endl;
std::cout<<((size_t)(&d)) % _alignof(double)<<std::endl;
return 0;
}

有时输出:

8
0

但是,有时它是:

8
4

难道 alignof(double)=8 意味着 double 的对齐将是 8 吗?

我见过: http://msdn.microsoft.com/en-us/library/aa290049(v=vs.71).aspx但我不确定我是否理解...

最佳答案

那是因为你获取了堆栈上的地址 (&d),该起始地址是在你的程序启动时动态计算的。 _alignof(double) 将始终返回 8,因为对于基本类型,它与它们的大小相同。

关于c++ - MSVC win32 中的 alignof(double),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20001135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com