1.
#define abc() dowhile(0)
#define abc() do
在核心中經常見到第一種用法,第一種用法和第二種用法的區別在**呢?看下面的例子
例一:if (a)
abc();
else
...例二:
abc();
例一中如果我們將巨集寫成第二種形式,編譯時會得到乙個編譯錯誤。例二中如果我們寫成第二種形式,在編譯時警告級別夠高的情況下會得到乙個編譯警告。
2.!!x, 比較簡單,但比較巧妙的用法。
3.#define xc(a, b) ()
該巨集比較奇特之處在於該巨集有返回值,為括號內最後一句話的返回值。例如:
c = xc(a, b)
執行完後c將是執行前a的值。
4.#define list_entry(ptr, type, member) /
container_of(ptr, type, member)
#define container_of(ptr, type, member) ()
舉個例子說明這個巨集的用法
typede struct
struct_1;
int main()
可以通過s1.b的位址來找到s1的位址。
編碼小技巧
a codementor print reverse is a 1 翻轉後的結果為 rotnemedoc mat 1,2,3 4,5,6 zip mat 1,4 2,5 3,6 a 1,2,3 將列表中的三個元素分拆成三個變數 a 1,2,3 x,y,z a x1 y2 z3a code mento...
C C 編碼技巧
宣告 其中有些內容並不是本人原創,而是學習的別人的經驗,或者是從書上看到的總結在此,既然拿出來共享,本人不再區分本人原創部分,而且有些技巧已經是眾所周知,或者已經用了很長時間了,也弄不清出處了,這些對原創者一併給予感謝!1.char str 20 char cp str 2 這樣比使用 char c...
css編碼技巧
一 儘量減少 重複 二 使用一些技巧再通過少許的 查詢實現響應式。這些技巧包括 1 使用百分比來代替固定寬度。如果實在做不到這一點可以使用與視口相關的單位 vw,vh,vmin,vmax 2 當需要在較大解析度下得到固定的寬度時,使用max width而不是width,因為它可以適應較小的解析度而無...