2012-10-21 77 views
4

有沒有辦法讓gcc的預處理器,以取代由typedef的是什麼定義的類型,即GCC預處理typedef名更換

是這樣的:

typedef unsigned char Uint8 

int main(void) 
{ 
    Uint8 a = 1; 
    Uint8 b = 2; 
    Uint8 c; 

    c = a + b; 

    return 0; 
} 

會得到預處理成類似這個:

int main(void) 
{ 
    unsigned char a = 1; 
    unsigned char b = 2; 
    unsigned char c; 

    c = a + b; 

    return 0; 
} 
+0

只需試試看& –

+0

爲什麼你要預處理器做到這一點?讓'typedef'做它的工作 – Praetorian

+0

試試麼?你沒有舉一個例子。 – user1164199

回答

2

不,沒有,因爲類型別名是編譯階段的一部分,而不是預處理階段。因此,預處理器無法根據設計知道類型的任何內容,並且無法對這些類型執行任何操作。此外,您忘記了在typedef語句的末尾放置;

+0

好的。謝謝(你的)信息。 – user1164199