在Linux內核中,there can be found a line of code看起來多餘的對我說:爲什麼Linux內核#定義一個符號本身?
#define __arch_swahb32 __arch_swahb32
什麼是這樣的一個成語的目的是什麼?
在Linux內核中,there can be found a line of code看起來多餘的對我說:爲什麼Linux內核#定義一個符號本身?
#define __arch_swahb32 __arch_swahb32
什麼是這樣的一個成語的目的是什麼?
考慮下面的代碼:
#ifdef foo
foo();
#endif
如果你想要一個像上面的代碼段調用函數foo
,你需要定義foo
。但是,如果你只是
#define foo
那麼函數foo
名稱將與空令牌替換,並且第一個片段進行預處理,只是();
。但是,如果你
#define foo foo
那麼第一個片段將預處理到foo();
因爲它應該。
好的,這是一個很好的例子!謝謝 – IljaBek