美文网首页
条件编译

条件编译

作者: _很帅气的昵称_ | 来源:发表于2020-03-03 00:30 被阅读0次

实际中遇到了问题,

查询后发现此处使用条件编译

即可通过定义USE_HORIZONTAL 的值来执行条件选择

条件编译中使用的预编译指令

#define            定义一个预处理宏

#undef            取消宏的定义

#if                   编译预处理中的条件命令,相当于C语法中的if语句

#ifdef              判断某个宏是否被定义,若已定义,执行随后的语句

#ifndef            与#ifdef相反,判断某个宏是否未被定义

#elif                若#if, #ifdef, #ifndef或前面的#elif条件不满足,则执行#elif之后的语句,相当于C语法中的else-if

#else              与#if, #ifdef, #ifndef对应, 若这些条件不满足,则执行#else之后的语句,相当于C语法中的else

#endif             #if, #ifdef, #ifndef这些条件命令的结束标志.

defined          与#if, #elif配合使用,判断某个宏是否被定义

宏定义,按照是否带参数通常分为对象宏、函数宏两种。

对象宏: 不带参数的宏被称为"对象宏(objectlike macro)"。对象宏多用于定义常量、通用标识。例如:

//常量定义

#define PRICE 30

// 预编译宏

#define DEBUG

 函数宏:带参数的宏。利用宏可以提高代码的运行效率: 子程序的调用需要压栈出栈, 这一过程如果过于频繁会耗费掉大量的CPU运算资源。 所以一些代码量小但运行频繁的代码如果采用带参数宏来实现会提高代码的运行效率。但多数c++程序不推荐使用函数宏,调试上有一定难度,可考虑使用c++的inline代替之。例如:

//最小值函数

#define MIN(a,b) (a<b?a:b)

参考:https://wenku.baidu.com/view/4682d63584254b35effd3475.html

          https://blog.csdn.net/Shrimp_millet/article/details/94574406

相关文章

  • 条件编译

    与 if 语句区别: 条件编译在编译之前执行,符合条件的才会被编译执行 if 语句在编译的时候都会被编译,但是只要...

  • 条件编译

    在 C 系语言中,可以使用 #if 或者 #ifdef 之类的编译条件分支来控制哪些代码需要编译,而哪些代码不需要...

  • 条件编译

    // C 系语言中,可以是用 #if 或者 #ifdef 之类的编译条件分支来控制那些代码需要编。/*#if#el...

  • 条件编译

    实际中遇到了问题, 查询后发现此处使用条件编译 即可通过定义USE_HORIZONTAL 的值来执行条件选择 条件...

  • 条件编译

    条件编译和选则结构if的共同点 都可以对给定的条件进行判断, 添加满足或者不满足都可以执行特定的代码条件编译和选则...

  • 编译和预处理指令

    1.预处理指令分类: 2.条件编译目的:防止文件重复包含和编译 条件编译当然也可以用条件语句来实现。 但是用条件语...

  • 22_条件编译使用分析

    关键词:条件编译的本质、#include的本质、 条件编译的意义 0 基本概念: 1) 条件编译的行为类似于C语言...

  • V语言学习笔记-25条件编译

    条件编译 目前主要针对不同平台,实现条件编译 按照作者的说法,为了保持V的简单,不会加入预处理,但是支持条件编译 ...

  • 嵌入式day13

    条件编译 编译器根据条件真假决定是否编译相关的代码 常见的条件编译有两种方法 根据宏是否定义 根据宏的值 结构体 ...

  • [每天进步一点点~] #ifdef 和 #ifend

    条件编译 条件编译是用特殊的注释作为标记,在编译时根据这些特殊的注释,将注释里面的代码编译到不同平台。写法:以 #...

网友评论

      本文标题:条件编译

      本文链接:https://www.haomeiwen.com/subject/qyznkhtx.html