2012-05-28 40 views

回答

3

A #define是一個宏。它充當你傳入它的直接複製麪食。所以,msd_buffer不是一個變量,它是一個強制轉換爲volatile數組。

假設例如使用這樣的:

msd_buffer[160] = 0xFF; 

這將是一樣使用它作爲一個變量。但是,它不具有可變的所有特性,如賦值:

msd_buffer = NEW_BUFFER_ADDRESS; // invalid! 

或地址了結:

my_func(&msd_buffer); // invalid! 

如果你瞭解了這些缺點(也許還有更多),然後,你正在使用像這樣的宏。

1

定義語句只是一個文本替換。而已。所以在你的情況下,不是真的。

相關問題