gcc 的常用选项
-E 只进行预处理操作
-gcc -E hello.c -o hello.i
-s 把C语言转换成汇编语言
-gcc -S hello.i
-c 只完成预处理和编译工作得到以.o作为扩展名的目标文件
-gcc -c hello.s
-o 指定生成的新文件的名称
-std =c89/-std=c99
-Wall 产生尽可能多的警告
ASCII码 256个字符分成两组 。一组是0-127 一组-1到-128 或 128到255
32 空格
48-57 0-9
在格式化串中用两个% 表示一个百分号
char 有符号 -128~127
unsigned char 无符号 0-255
short 短整形 包含65536个不同的整形数字 从-32768到32767
unsigned short 代表无符号整形 从0到65535
long 长整形 2^32个不同的数字从0开始
linux下int 和long 是一样的
数字后面加u表示无符号整形 EG:7u表示无符号整形的数字7
带小数点的数字缺省当成double类型, eg:3.5是双精度浮点型的数字,在数字后面家的小写字符f则表示数字是单精度浮点型 3.5f表示单精度浮点型数字
数据类型 与其占位符:
char %c
short %hd
unsigned short %hu
long %ld
unsigned long %lu
int %d
unsigned int %u
float %f或%g (是否去掉小数点后的0)
double %lf或%lg
long double %Lf
八进制的占位符 %o
十六进制的占位符 %x或%X (要想打出前缀 前面加#) printf("n=%d(%#x)\n",n,n);
00
printf("%-03d",7); 0代表空格用0代表 3表示输出几位 -号表示空位置在后面
printf("%7.2f",7.2); 7代表输出的占的位数 .2代表小数点后保留几位
一个变量由内存中一个或多个连续字节来存储 其中一个变量所站的字节的个数必须是2的整数次方。
char,unsigned char 1个字节
short ,unsigned short 2个字节
long , unsigned long 4个字节
int ,unsigned int 4个字节
float 4个字节 精度6
double 8个字节 精度15
long double 16个字节 精度18
所有正整数一定可以拆分成多个正整数之和,而且这写拆分出来的正整数都是2的整数次方
二进制转换成十进制:
1011 0011 =128+32+16+2+1=179
十进制转换成二进制:
除以2 反向取
97=64+32+1=0110 0001
一个字节可以存储八个二进制位
八进制是二进制的一种简写方式 (二进制数从右向左每三位合并成一个0-7之间的数字,合并后的结果就是数字的八进制的表示形式)
(八进制数字必须以0开头)
八进制的占位符是%o
十六进制 (从右向左每四个一组,)
十六进制数字必须以0x开头
对应占位符为%x或%X
-E 只进行预处理操作
-gcc -E hello.c -o hello.i
-s 把C语言转换成汇编语言
-gcc -S hello.i
-c 只完成预处理和编译工作得到以.o作为扩展名的目标文件
-gcc -c hello.s
-o 指定生成的新文件的名称
-std =c89/-std=c99
-Wall 产生尽可能多的警告
ASCII码 256个字符分成两组 。一组是0-127 一组-1到-128 或 128到255
32 空格
48-57 0-9
在格式化串中用两个% 表示一个百分号
char 有符号 -128~127
unsigned char 无符号 0-255
short 短整形 包含65536个不同的整形数字 从-32768到32767
unsigned short 代表无符号整形 从0到65535
long 长整形 2^32个不同的数字从0开始
linux下int 和long 是一样的
数字后面加u表示无符号整形 EG:7u表示无符号整形的数字7
带小数点的数字缺省当成double类型, eg:3.5是双精度浮点型的数字,在数字后面家的小写字符f则表示数字是单精度浮点型 3.5f表示单精度浮点型数字
数据类型 与其占位符:
char %c
short %hd
unsigned short %hu
long %ld
unsigned long %lu
int %d
unsigned int %u
float %f或%g (是否去掉小数点后的0)
double %lf或%lg
long double %Lf
八进制的占位符 %o
十六进制的占位符 %x或%X (要想打出前缀 前面加#) printf("n=%d(%#x)\n",n,n);
00
printf("%-03d",7); 0代表空格用0代表 3表示输出几位 -号表示空位置在后面
printf("%7.2f",7.2); 7代表输出的占的位数 .2代表小数点后保留几位
一个变量由内存中一个或多个连续字节来存储 其中一个变量所站的字节的个数必须是2的整数次方。
char,unsigned char 1个字节
short ,unsigned short 2个字节
long , unsigned long 4个字节
int ,unsigned int 4个字节
float 4个字节 精度6
double 8个字节 精度15
long double 16个字节 精度18
所有正整数一定可以拆分成多个正整数之和,而且这写拆分出来的正整数都是2的整数次方
二进制转换成十进制:
1011 0011 =128+32+16+2+1=179
十进制转换成二进制:
除以2 反向取
97=64+32+1=0110 0001
一个字节可以存储八个二进制位
八进制是二进制的一种简写方式 (二进制数从右向左每三位合并成一个0-7之间的数字,合并后的结果就是数字的八进制的表示形式)
(八进制数字必须以0开头)
八进制的占位符是%o
十六进制 (从右向左每四个一组,)
十六进制数字必须以0x开头
对应占位符为%x或%X