兩則c
語言技巧
以前用c++
時,喜歡去玩一些語法上的技巧,每學到乙個技巧都高興得不得了,總是想找個地方用它,以顯示自己的水平。其實我們應該更關心技巧的實用價值,如果一項技巧很巧妙,但很少用它,忘掉了也不必覺得可惜。最近發現兩則c
語言技巧,以前沒有用過,覺得有些實用價值,做個筆記吧。
1.
陣列初始化。
常見的陣列初始化方法:
intarray
[10] = ;
通常情況下,這種做法沒有問題。再看看下面這個例子:
enum
;int
price
[fruit_nr
] = ;
這段**有個潛在前提,那就是列舉的順序不能變化。一旦變化,整個邏輯都亂了,這樣的bug
能否查出來要靠運氣。這樣的假設是靠不住的,特別是當列舉是第三方庫提供的時候,他們調整列舉的順序後絕對不會通知你。為了避免這樣的潛在隱患,可以用下面的方法:
enum
;int
price
[fruit_nr
] = ;
2.
處理case
語句。處理case
語句,有很多case
情況要做相同的處理時,通常的做法是:
switch
(value
)default
:break;}
這樣寫當然沒有錯,只是比較繁瑣,特別是這樣情況很多時。如果這些值是連續的,我們可以用下面的方法:
switch
(value
)default
:break;}
這兩個技巧好像是屬於c
語言新標準的,我只是在gcc
上測試過,不能保證可移植性。
~~end~~
再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!
兩則c語言技巧
以前用c++
時,喜歡去玩一些語法上的技巧,每學到乙個技巧都高興得不得了,總是想找個地方用它,以顯示自己的水平。其實我們應該更關心技巧的實用價值,如果一項技巧很巧妙,但很少用它,忘掉了也不必覺得可惜。最近發現兩則c
語言技巧,以前沒有用過,覺得有些實用價值,做個筆記吧。
1.
陣列初始化。
常見的陣列初始化方法:
intarray
[10] = ;
通常情況下,這種做法沒有問題。再看看下面這個例子:
enum
;int
price
[fruit_nr
] = ;
這段**有個潛在前提,那就是列舉的順序不能變化。一旦變化,整個邏輯都亂了,這樣的bug
能否查出來要靠運氣。這樣的假設是靠不住的,特別是當列舉是第三方庫提供的時候,他們調整列舉的順序後絕對不會通知你。為了避免這樣的潛在隱患,可以用下面的方法:
enum
;int
price
[fruit_nr
] = ;
2.
處理case
語句。處理case
語句,有很多case
情況要做相同的處理時,通常的做法是:
switch
(value
)default
:break;}
這樣寫當然沒有錯,只是比較繁瑣,特別是這樣情況很多時。如果這些值是連續的,我們可以用下面的方法:
switch
(value
)default
:break;}
這兩個技巧好像是屬於c
語言新標準的,我只是在gcc
上測試過,不能保證可移植性。
~~end~~
兩則C語言技巧
兩則 c語言技巧 以前用 c 時,喜歡去玩一些語法上的技巧,每學到乙個技巧都高興得不得了,總是想找個地方用它,以顯示自己的水平。其實我們應該更關心技巧的實用價值,如果一項技巧很巧妙,但很少用它,忘掉了也不必覺得可惜。最近發現兩則 c語言技巧,以前沒有用過,覺得有些實用價值,做個筆記吧。1.陣列初始化...
兩則C語言技巧 zz
以前用c 時,喜歡去玩一些語法上的技巧,每學到乙個技巧都高興得不得了,總是想找個地方用它,以顯示自己的水平。其實我們應該更關心技巧的實用價值,如果一項技巧很巧妙,但很少用它,忘掉了也不必覺得可惜。最近發現兩則 c語言技巧,以前沒有用過,覺得有些實用價值,做個筆記吧。1.陣列初始化。常見的陣列初始化方...
DirectFB兩則技巧
directfb 兩則技巧 directfb 的執行行為可以通過配置檔案進行控制,可以從多個配置檔案中讀出配置資訊,然後合併到一起,甚至可以對不同名稱的應用程式指定不同的配置檔案。其主配置檔案為 etc direcfbrc 它的內容影響所有使用者的應用程式。建立 pc模擬環境。directfb 和x...