2016-12-07 24 views

Odpowiedz

15

Rozważmy następujący kod:

#ifdef foo 
    foo(); 
#endif 

Jeśli chcesz urywek jak wyżej do funkcji foo zadzwonić, trzeba zdefiniować foo. Jednakże, jeśli tylko

#define foo 

następnie nazwa funkcji foo zostaną zastąpione pustym tokena, a pierwszy fragment jest wstępnie przetworzone do zaledwie ();. Jeśli jednak jesteś

#define foo foo 

to pierwszy fragment będzie przetwórz do foo(); jak powinno.

+0

ok, to jest dobry przykład! Dziękuję Ci – IljaBek

6

Sztuczka w celu zapewnienia #if defined(__arch_swahb32) podania, ale nie zastępuje. (Często wykorzystywane do realizacji funkcji makro typ)

+0

dziękuję za odpowiedź! – IljaBek

Powiązane problemy