我試圖用Visual C++ 2010 Express編譯一些源代碼。該代碼爲GCC編寫,幷包含屬性是這樣的:Visual C++ 2010解決方案範圍宏參數
struct something {
...
} __attribute__((packed));
因爲這不是標準C++的語法時,Visual C++不承認它。有了這個宏之前的結構聲明,它工作正常:
#define __attribute__(p)
但我不想改變這些文件。我創建了一個新的屬性表(GccCompat),併到預處理定義,並添加宏,就像這樣:
__attribute__(p)
或像這樣:
__attribute__(p)=
但它不工作。它根本不叫。如果我在相同位置僅定義了__attribute__
(不帶參數),則宏定義正確。請注意,生成的命令行看起來很好(帶參數的宏與沒有參數的宏完全相同),但編譯器似乎忽略了它。那麼,我如何用參數全局定義我的宏呢?
這是一個錯誤? GCC擴展是'__attribute__',但是你在問題的MSVC部分提到'__attributes__'。 – 2010-05-31 14:35:32
這是一個錯字。我在實際項目中使用了__attribute__。 – OregonGhost 2010-05-31 14:37:42