美文网首页
条件编译宏

条件编译宏

作者: i诺离 | 来源:发表于2017-11-22 16:15 被阅读102次

常用指令

#undef 取消定义宏
#if 如果条件为真,则编译下面的代码
#elif 如果前面的#if不为真,则编译下面的代码
#endif 结束一个#if...#elif条件编译块
#ifdef 如果已经定义了某个宏,则编译下面的代码
#ifndef 如果没有定义某个宏,则编译下面的代码
#error 停止编译并显示错误信息
#     将两侧当做字符串拼接
##   将两侧组成一个变量(它不可以是第一个或者最后一个子串。)

实例:

#define paster( n ) printf( "token" #n " = %d", token##n )

应用:
int token9 = 0;
paster(9);
输出:
token9 = 0

可以通过设置Compiler Flags来定义宏,然后就可以在代码中使用这些宏,来进行条件编译的操作。

有三种方式设置:

OTHER_CFLAGS (Other C Flags)
// 在Target>Build Setting>Custom Compiler Flags>Other C Flags

GCC_PREPROCESSOR_DEFINITIONS (Preprocessor Macros)
// 在Target>Build Setting> Preprocessing > Preprocessor Macros

INFOPLIST_PREPROCESSOR_DEFINITIONS (Info.plist Preprocessor Definitions)
// 在Target>Build Setting> Packaging > Info.plist Preprocessor Definitions

注意:在other c flags 设置 需要使用-D的格式
-D[你要设置的宏名称] 
// 没有中括号  发现#if  或者  #ifdef 都可以执行

在 Preprocessor Macros 设置定义宏需要转义,例如
// 定义替换为NSString类型
MY_MACRO=@\"Hello!!\"
// 这样定义替换后的类型是:NSNumber
MY_NUMBER=@"123"

相关文章

  • 条件编译宏

    常用指令 实例: 可以通过设置Compiler Flags来定义宏,然后就可以在代码中使用这些宏,来进行条件编译的...

  • 嵌入式day13

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

  • Swift中的条件编译

    1、条件编译2、宏定义define 1、条件编译 Swift中没有宏定义的概念,因此我们不能使用#ifdef的方法...

  • 10月19日

    今天老师主要讲的预编译。包括:宏,包含,条件编译 1.宏 #define 可以理解为替换 2.包含#include...

  • 编译过程

    1、预编译(1)宏定义指令,如 #define a b(2)条件编译指令,如#ifdef,#ifndef,#el...

  • 打卡7.23:宏定义

    宏定义的三种预处理包括:宏定义、文件包含、条件编译 if是条件语句,在运行的过程中根据条件的值选择执行不同的语句。...

  • 【算法竞赛】 输入输出 框架 使用较少,存储即可

    最简单的 重定向; 使用 了 宏定义 条件编译 禁用 重定义。

  • 条件编译指令(符号),C语言条件编译指令完全攻略

    在 C 语言中,条件编译指令可以实现源代码的部分编译功能,可以根据表达式的值或者某个特定的宏来确定编译条件,以决定...

  • 10/19

    今天老师讲了预处理命令,宏定义分为无参宏定义,带参宏定义和条件编译。宏定义包括宏名和宏展开,和函数相比预处理有很多...

  • C语言中预编译指令

    基本预编译指令#include 将指定头文件嵌入源文件中。#define 宏定义 条件预编译指令 (#ifdef...

网友评论

      本文标题:条件编译宏

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