• C语言中的预处理命令


    预处理功能是C语言的重要功能。

     

    问:为什么要预处理,什么是预处理?

    答:我们知道高级语言的运行过程是通过编译程序(编译器)把源代码翻译成机器语言,实现运行的。编译程序的工作包含:语法分析、词法分析、代码生成、代码优化等。但是在正式编译之前还有一些工作要做,例如:去掉注释、变换格式之类的。C语言允许在源程序中包含预处理命令,正式编译(词法分析)前,先对这些命令进行“预处理”;然后在进行通常的编译处理。预处理命令从语法上讲不是C语言的一部分,但扩展了C语言程序设计的环境,简化程序开发过程;有利于移植和调试C语言程序。

     

    预处理命令的定义:

    以#开头,换行符结尾的行称为预处理命令;预处理命令不是C语言的语法成分,而是传给编译程序的各种指令;预处理命令分为三种:宏定义、文件包含、条件编译

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    宏定义

    定义一个标识符来代表一个字符串;这种标识符称为宏名(macro name);

    在源程序中发现该标识符时,都用该字符串替换,形成新的源程序;将标识符替换成指定字符串的过程称为宏替换(macro substitution);

    宏替换的操作是在预编译时进行的;

    说白了就是将一个变量强制定义为你想要的值

    注意点:

    1)全部用大写,以便与变量区分,帮助读者快速识别;
    2)最好把所有宏定义命令放在文件的最前面;

    如果需要终止宏的作用域,可以使用#undef命令;格式为: #undef 标识符


    应用举例:

    #define PI 3.14 就是将PI的值定义成3.14,这样在程序里看到PI就可以替换成3.14了

     

    参考链接:

    #define的用法详解:https://www.cnblogs.com/shmilxu/p/4837373.html

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    文件包含:

    用法:

    #include <包含文件名>    或    #include "包含文件名"

     

    作用:

    将另一个文件全部包含进来;

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    条件编译:

    一般情况下,源程序中所有的语句都参加编译;但是有时候也希望根据一定的条件去编译源文件的不同部分;

    有时候一个C文件会多次包含同一个头文件,就可能出现重复定义的问题;

    这时候可以通过条件编译来避免重复定义(重复包含);

     

    #ifndef __headerfileXXX__

    #define __headerfileXXX__

      …

      文件内容

      …

    #endif

    #ifndef 和 #endif 要一起使用,如果丢失#endif,可能会报错。

    参考链接:

    #ifndef, #define, #endif 作用:https://www.cnblogs.com/challenger-vip/p/3386819.html

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

  • 相关阅读:
    axis
    LRU
    apk 反编译
    android 设置 button 不同状态的图片
    resin
    scrum 项目管理
    android 国外广告平台
    JNI
    java 通信
    google网站分析
  • 原文地址:https://www.cnblogs.com/grooovvve/p/9782124.html
Copyright © 2020-2023  润新知