參考鏈接:http://blog.csdn.net/jjwwmlp456/article/details/41676225
編譯文件:cc -c one.c two.c 生成.o目標文件
鏈接文件:cc one.o two.o 默許生成 a.out 履行文件
指定生成的可履行文件名 cc -o one one.o
連續編譯、鏈接:cc one.c cc -o one one.c 中間生成的.o文件會被刪除,最后生成履行文件
cc one.c two.c 源文件超過1個時,目標.o文件便不會被刪除(one.c 和two.c 需要1個main入口)
以后可以只編譯更改的源文件 cc one.o two.o three.c, 生成可履行文件
cc -c a.c -o a.o 編譯生成a.o
C語言32個關鍵字:
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
當數值比較小(在char的取值范圍內),用char 比用int 更節省內存開消,由于它只占1個字節
char c = ‘A’;與 char c = 65; 是等效的。1個漢字占兩個字符,用char是不行的,
需要用字符數組來存儲(c語言中沒有字符串類型)。
局部變量可以在聲明時不初始化,后續直接使用,與java不同
這樣做不太好,由于這多是1個隨機的垃圾值,而不是0。
可以在基本數據類型的前面加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]
// 可以連續使用2個long
long long ll = 10;
// 下面兩種寫法是等價的
signed int si1 = 3;
signed si2 = 3;
// 下面兩種寫法是等價的
unsigned int us1 = 4;
unsigned us2 = 4;
// 也能夠同時使用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 語言中的進制:
2進制:int a = 0B(b)1100 ;
8進制: int b = 027;
106進制:int c = 0X(x)AF3;
10進制:不加前綴 int d = 27;
printf(“%d”, a); printf(“a=%d, b=%x”, a, b);
%ld,long int
%lf,long double
%4d,表示的結果占4位及以上,原樣輸出;反之,在左側補空格,補滿至4位
%⑷d, 表示的結果(算上符號-)占4位及以上,原樣輸出; 反之,在右側補空格,補滿至4位
%.2f 輸出兩位小數,默許是6位
%p 輸出內存的地址,, 如:printf(“變量a的地址是:%p”, &a)
%u 輸出的數值相當因而unsigned所修飾的。如果數值本身為負數,而要用%u來輸出,
那末就需要轉換:在不同的編譯器,負數轉成相應位數的2進制情勢,
再去掉高位的符號位被0