c-1

2022-06-09  本文已影响0人  x92n

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宏就是把长的指令变成短的,根据预定义的规则替换文本,便于修改。

数据类型存在的意义?

使用数据类型是为了正确解析数据,数据在底层是一串二进制,不同解析方式会解析成不同的数据。

数据类型不同,字节大小不一样,解析方式不一样。

注:计算机通过指数的形式表示浮点数

上一篇 下一篇

猜你喜欢

热点阅读