C语言复习0.1

xiaoxiao2021-02-28  216

C语言复习0.1


C程序编译步骤

预处理:宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除,这里并不会检查语法

gcc -E hello.c -o hello.i

编译:检查语法,将预处理后文件编译生成汇编文件

gcc -S hello.i -o hello.s

汇编:将汇编文件生成目标文件(二进制文件)

gcc -c hello.s -o hello.o

链接:C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终的可执行程序中去

gcc hello.o -o hello_elf

原码反码补码

源码

最高位作为符号位,0表示正,1表示负其他数值部分就是数值本身绝对值的二进制数负数的源码实在其绝对值的基础上,最高位变为1

反码

对于正数,原码反码补码相同对于负数,符号位不变,其他部分取反

补码

对于正数,原码反码补码相同对于负数,其补码为它的反码加一补码符号位不动,其他位取反,最后整个书加一,得到原码

在计算机系统中,数值一律用补码来存储 主要原因是:

统一了零的编码将符号位和其他位统一处理将减法运算转变为加法运算两个用补码表示的数相加时,如果最高位(符号位)有进位,则进位被舍弃

数据类型

类型限定符

限定符含义extern声明一个变脸,extren声明的变量没有建立存储空间volatile防止编译器优化代码register定义寄存器变量,提高效率。register是建议型的指令,而不是命令型指令,如果CPU有空闲寄存器,那么register就生效,如果没有则无效

printf格式化输出

打印格式对应数据类型含义%dint接受整数值并将它表示为有符号的十进制整数%hdshort int短整数%huunsigned short无符号短整数%ounsigned int无符号8进制整数%uunsigned int无符号10进制整数%x,%Xunsigned int无符号16进制整数,x对应的是小写,X大写
转载请注明原文地址: https://www.6miu.com/read-40704.html

最新回复(0)