2017-05-15 8 views
0

如果我們將屬性寫入某些變量或函數,那麼正確的做法是什麼?我將在以下樣式的幫助下闡述我的問題。在C中使用屬性時,什麼是正確的編碼練習?

int a __attribute__((aligned(32))); 

__attribute__((aligned(32))) int a; 

__attribute__((aligned(32))) 
int a; 

int __attribute__((aligned(32))) a; 

您認爲更好或正確的書寫屬性的方法是什麼?

+2

我們應該在哪些標準中決定哪一個最好?這是一個非常主觀的問題。無論如何,如果效率是相同的,我會在任何情況下選擇'int a;'。如果有任何細節要添加到這個聲明中,只需評論它。 – Badda

+1

無論你決定什麼,每次都以同樣的方式做。 –

回答

1

最好的方法是遵循標準C.所有的例子都是非標準的。

由於C11,您可以使用_Alignas關鍵字在標準C:

_Alignas(32) int x; 

這是「最好」的方式,因爲它是標準的,便於攜帶。

+1

你可以在''中加入一些更漂亮的語法:'alignas'而不是'_Alignas' – InternetAussie

+0

是的,這使得代碼與C++'alignas'和'alignof'兼容。這可能會或可能不會是一件好事。 – Lundin