參考鏈接:http://blog.csdn.net/jjwwmlp456/article/details/41676225
編譯文件:cc -c one.c two.c 生成.o目標(biāo)文件
鏈接文件:cc one.o two.o 默許生成 a.out 履行文件
指定生成的可履行文件名 cc -o one one.o
連續(xù)編譯、鏈接:cc one.c cc -o one one.c 中間生成的.o文件會(huì)被刪除,最后生成履行文件
cc one.c two.c 源文件超過(guò)1個(gè)時(shí),目標(biāo).o文件便不會(huì)被刪除(one.c 和two.c 需要1個(gè)main入口)
以后可以只編譯更改的源文件 cc one.o two.o three.c, 生成可履行文件
cc -c a.c -o a.o 編譯生成a.o
C語(yǔ)言32個(gè)關(guān)鍵字:
auto
short double int long char float unsigned signed
static volatile const
return void
struct enum typedef union
if else do while continue for
switch case break
register extern
default goto sizeof
當(dāng)數(shù)值比較小(在char的取值范圍內(nèi)),用char 比用int 更節(jié)省內(nèi)存開(kāi)消,由于它只占1個(gè)字節(jié)
char c = ‘A’;與 char c = 65; 是等效的。1個(gè)漢字占兩個(gè)字符,用char是不行的,
需要用字符數(shù)組來(lái)存儲(chǔ)(c語(yǔ)言中沒(méi)有字符串類型)。
局部變量可以在聲明時(shí)不初始化,后續(xù)直接使用,與java不同
這樣做不太好,由于這多是1個(gè)隨機(jī)的垃圾值,而不是0。
可以在基本數(shù)據(jù)類型的前面加1些修飾符,也有人稱之為限定符,1樣的意思。
有以下4種類型修飾符:
short int <==> short
long int 、long long int 、long long <==> long
long double <==> double
signed [int | long | char]
unsigned [int | long | char]
// 可以連續(xù)使用2個(gè)long
long long ll = 10;
// 下面兩種寫(xiě)法是等價(jià)的
signed int si1 = 3;
signed si2 = 3;
// 下面兩種寫(xiě)法是等價(jià)的
unsigned int us1 = 4;
unsigned us2 = 4;
// 也能夠同時(shí)使用2種修飾符
signed short int ss = 5;
unsigned long int ul = 5;
unsigned char c1 = 10;
signed char c2 = -10;
long double d1 = 12.0;
c 語(yǔ)言中的進(jìn)制:
2進(jìn)制:int a = 0B(b)1100 ;
8進(jìn)制: int b = 027;
106進(jìn)制:int c = 0X(x)AF3;
10進(jìn)制:不加前綴 int d = 27;
printf(“%d”, a); printf(“a=%d, b=%x”, a, b);
%ld,long int
%lf,long double
%4d,表示的結(jié)果占4位及以上,原樣輸出;反之,在左側(cè)補(bǔ)空格,補(bǔ)滿至4位
%⑷d, 表示的結(jié)果(算上符號(hào)-)占4位及以上,原樣輸出; 反之,在右側(cè)補(bǔ)空格,補(bǔ)滿至4位
%.2f 輸出兩位小數(shù),默許是6位
%p 輸出內(nèi)存的地址,, 如:printf(“變量a的地址是:%p”, &a)
%u 輸出的數(shù)值相當(dāng)因而unsigned所修飾的。如果數(shù)值本身為負(fù)數(shù),而要用%u來(lái)輸出,
那末就需要轉(zhuǎn)換:在不同的編譯器,負(fù)數(shù)轉(zhuǎn)成相應(yīng)位數(shù)的2進(jìn)制情勢(shì),
再去掉高位的符號(hào)位被0