知識點(diǎn):
1.float不會(huì)被自動(dòng)擴(kuò)展為double。 在ANSI C中
2.宏所接受參數(shù)類型可以不同。 最好只用于命名常量和為結(jié)構(gòu)提供簡潔記法。
3.操作符左右最好用空格分開。防止古老版本的程序,會(huì)修改賦值符的位置。
4.在limits.h中有INT_MAX, LONG_MAX定義
5.類型不兼容。因?yàn)閮蓚€(gè)指針?biāo)笇ο蟛煌6皇切揎椃煌?br />
foo (const char **p) {}
int main(int argc, char **argv)
{
foo(argv);
}
6.K&R C 和 ANSI C對待無符號數(shù)原則不同
K&R C 使用無符號保留的原則。
ANSI C 使用值保留的原則。(整數(shù)如果轉(zhuǎn)換為signed不會(huì)丟失信息,就轉(zhuǎn)換為signed,否則轉(zhuǎn)換為unsigned)
經(jīng)過gcc中測試,采用的是ANSI C的原則
7.盡量不要在代碼中使用無符號數(shù),以避免增加不必要的復(fù)雜性。不要僅僅因?yàn)闊o符號數(shù)不存在負(fù)值(如年齡),就用它來表示數(shù)量。
只有在使用
位段和二進(jìn)制掩碼時(shí)候,才可以用無符號數(shù)。在表達(dá)式中使用
強(qiáng)制轉(zhuǎn)換,是操作數(shù)均為有符號或者無符號數(shù),這樣就不必由編譯器選擇結(jié)果的類型。