2017-07-24 47 views
-3

我是新來的C + +(知道一些Python但不流利),並從參考文獻學習。alignof?

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

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

我添加了stalign頭,但我仍然得到相同的錯誤。我也嘗試過std :: algnment_of,但仍然是同樣的問題。

我正在使用Dev-C++編譯器。

編輯:我只是在嘗試,而學習數據結構對齊。

+0

你期望'alignof;'做什麼? [''](http://en.cppreference.com/w/c/types)中的'alignof'宏是一個C11特性,它不是C++的一部分。在C++中,['alignof'](http://en.cppreference.com/w/cpp/language/alignof)是一個運算符,該語言的內置功能不需要include。 –

+1

Dev-C++是一個IDE,不是一個精確的編譯器。 – Ron

+1

@FrançoisAndrieux[''alignof'是C++ 11的一部分](http://en.cppreference.com/w/cpp/keyword/alignof)。但是,當然,OP的用法是錯誤的。 ''使用命名空間''' – idmean

回答

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前綴模型#include <cstdalign>你在哪裏。

+0

你不需要在C++中爲'alignof'包含'cstdalign'(或其他)。 – interjay

+0

@interjay。我的錯誤和壞習慣。 – Persixty

相關問題