在此范围内未声明的alignof?

时间:2017-07-24 14:22:56

标签: c++

我是C ++的新手(知道一些python但不流利)并且正在从参考文档中学习。

#include <iostream>
#include <stdalign.h>
using namespace std;

int main(){
    alignof; //error:'alignof' not declared in this scope
}

我添加了stalign标题,但我仍然遇到同样的错误。我也试过std :: algnment_of,但仍然是同样的问题。

我正在使用Dev-C ++编译器。

编辑:我只是在试验,同时学习数据结构对齐。

1 个答案:

答案 0 :(得分:1)

您没有以正确的方式使用alignof

#include <iostream>

int main(){
    std:: cout<< sizeof(int) << ' ' << alignof(int) << '\n'; //This is how to use it.
    return 0;
}

典型输出:

4 4

尺寸和对齐方式因平台而异,但在现代平台上通常需要sizeof(int)==alignof(int)称为“完全对齐”(或只是最佳性能)。

编辑:有人指出你不需要#include <cstdalign>来使用alignof,但另一点仍然存在。 #include <stdalign.h>不是导入C标准库的推荐方法,您应该使用c-prefix模型#include <cstdalign>