栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【C进阶】程序的预处理操作

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【C进阶】程序的预处理操作

目录

前言

1. 程序的运行

2. 预定义符号

3. #difine

3.1 定义常量

3.2 给类型定义别名

3.3 自定义一些关键字

3.4 定义一个代码片段

3.5 #undefine

4. 条件编译

总结


前言

        程序具体是怎么运行起来的呢?会涉及到那些操作呢?预处理又是在干什么?

1. 程序的运行

分为两个步骤

1.把 .c 文件变成一个可执行文件

2.执行该可执行文件。

        编译又可以分为以下几个阶段

1.预处理。编译器先对程序进行一个初步的处理,执行代码中的预处理指令。(以#开头的都是预处理指令)

2.编译。把c语言文件变成汇编语言文件

3.汇编。把汇编语言文件转换成为二进制的机器指令

4.链接。每个.c文件都会生成对应的机器指令文件,链接就是将这些文件合并起来。

2. 预定义符号

        编译器提前定义好的符号

#include 

int main()
{
    printf("%sn",__FILE__);//进行编译的源文件
    printf("%dn",__LINE__);//文件当前的行号
    printf("%sn",__DATE__);//文件被编译的日期
    printf("%sn",__TIME__);//文件被编译的时间
    return 0;
}

3. #difine

3.1 定义常量

        #define pi 3.14

        不解释

3.2 给类型定义别名

        #define uint unsigned int

        不解释

3.3 自定义一些关键字

        #define 并且 &&

        不解释

3.4 定义一个代码片段

        #define ADD(x,y) x+y

        不解释

3.5 #undefine

移除一个宏定义

4. 条件编译

        典型应用有3个分别是一份代码同时兼容开发环境和发布环境、一份代码兼容不同的系统、防止头文件被重复包含、多行注释

#include 
#define test 0
int main()
{
#if test
    printf("该句子被编译n");
#endif

#if 0
这
是
多
行
注
释
#endif
    return 0;
}

总结

        c语言部分知识点已经基本学完了,接下来就要好好刷题,巩固知识。培养自己的编程思维。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/458049.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号