参考链接: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