儘管具有已讀k & R,且還教Ç班,我發現自己尷尬無法全面瞭解一個可以稱之爲「現代」 C.什麼我在哪裏可以找到關於「現代」C編程的資源?
似乎是在現代編程許多不成文的慣例,以據我所知,沒有記錄在任何地方。
以SQLite源代碼爲例。其中我發現,例如:
SQLITE_API int sqlite3_close(sqlite3 *);
SQLITE_API
代表什麼?這甚至在句法上是正確的?
或者這樣:
#ifndef _SQLITE3_H_
#define _SQLITE3_H_
是否有一個公認的慣例某處時,用下劃線前綴宏?有時我會看到以兩個下劃線爲前綴的宏。
或者如何使用固定大小的類型,如uint32
等等。什麼時候應該使用這種做法,什麼時候不使用?什麼是新的ish bool
類型,什麼時候它應該比簡單的整數更受歡迎?
這些是我在閱讀其他人的源代碼時所提出的一些問題。有沒有可能幫助我回答這些問題的參考?
閱讀http://c-faq.com/然後獲得ISO C99標準並閱讀。 – cnicutar 2011-06-10 14:08:30
這些也被稱爲Ansi C,你也可以查看GNU編碼標準或者非常具體的東西,將會是linux內核編碼風格。伯克利也有一些編碼準則。所有這些都有優點和缺點。另外還有更多。 – 2011-06-10 14:19:02