W jądrze Linux, there can be found a line of code który wygląda zbędne do mnie:Dlaczego jądro Linuksa # definiuje symbol jako taki?
#define __arch_swahb32 __arch_swahb32
Jaki jest cel idiomu jak to?
W jądrze Linux, there can be found a line of code który wygląda zbędne do mnie:Dlaczego jądro Linuksa # definiuje symbol jako taki?
#define __arch_swahb32 __arch_swahb32
Jaki jest cel idiomu jak to?
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.
Sztuczka w celu zapewnienia #if defined(__arch_swahb32)
podania, ale nie zastępuje. (Często wykorzystywane do realizacji funkcji makro typ)
dziękuję za odpowiedź! – IljaBek
ok, to jest dobry przykład! Dziękuję Ci – IljaBek