C语言编译过程
(1)预编译
由.c文件到.i文件,叫预编译。主要工作是把用#include导入的头文件展开,包含到程序中。处理#define宏定义,也就是进行字符串替换。去掉代码中的注释。
(2)编译
把.i文件到.s文件,这个过程叫编译。把C语言代码转变成汇编代码,但转化后的汇编不是win32汇编,而是Linux汇编
(3)汇编
把.s文件到.o文件,这个过程叫汇编。把汇编代码转换成二进制指令。Windows下生成obj文件。
(4)链接
把.o文件到可执行文件,这个过程叫链接。把所有二进制形式的目标文件和系统组件组合成一个可执行文件。
程序就是算法+数据结构,就是如何增删查改数据,即如何操作数据。
变量就是一片内存的名字,通过变量去访问内存。
C语言中const关键字定义常量,但又不是真正意义上的常量,虽然不可以直接修改,但可以用指针来修改他的值。
*[指针]或[内存地址]:表示根据内存地址取出内容
#include <stdio.h>
int main() {
const int a = 100;
*(int*)(&a) = 200; //使用指针修改const变量的地址
printf("%d", a);
return 0;
}
#define 常量名 常量值
定义的常量是真正意义的常量。
#define
宏就是把长的指令变成短的,根据预定义的规则替换文本,便于修改。
数据类型存在的意义?
使用数据类型是为了正确解析数据,数据在底层是一串二进制,不同解析方式会解析成不同的数据。
数据类型不同,字节大小不一样,解析方式不一样。
注:计算机通过指数的形式表示浮点数
网友评论