C++:宏(Macro)

本文介绍了在Xcode中如何使用宏和预处理器进行代码自动化,如定义LOG宏和PR_Debug,以及在预处理阶段控制编译行为。特别关注了在不同模式下宏的加载和代码替换的应用。
摘要由CSDN通过智能技术生成

//宏Macro  :使用预处理器来“宏”化某些操作,实现一定的自动化,在代码中替换和查找,发生在预处理阶段,模版发生在编译过程

//预处理阶段:是一个文本编辑阶段,在这个阶段,我们可以控制哪些代码可以实际喂给编译器 (以#开头,是预处理指令符号)

//禁用自定义区域代码

//#if 0

//#endif

//在define中如果需要换行,用\ 即可表示代码中的换行,为了美观手动换行,但是代码里的换行要用转义字符\ 

宏的两种定义方式(xcode)

 

第二种: #define PR_Debug 0 

#define name value 


#include <string>
#include <iostream>

//宏Macro  :使用预处理器来“宏”化某些操作,实现一定的自动化,在代码中替换和查找,发生在预处理阶段,模版发生在编译过程
//预处理阶段:是一个文本编辑阶段,在这个阶段,我们可以控制哪些代码可以实际喂给编译器 (以#开头,是预处理指令符号)
//用WAIT 替换 std::cin.get()
//#define WAIT std::cin.get()
//#define OPEN_CURLY {

//这段代码的意思是,PRO_Debug定义了则输出x,否则不输出

//在release模式下运行,发现没有输出,意味着release下编译时不会加载宏定义
#define PR_Debug 0//可以直接在代码中定义PRO_Debug等于0
//#if PR_Debug==1 //判断值用if ifdef仅判断是否被定义
#ifdef PRO_Debug
//在设置的build setting的Preprocess找到debug,添加想要定义的名字
#define LOG(x) std::cout<<x<<std::endl
#else
#define LOG(x)
#endif
//相对于在预处理阶段,利用宏,替换代码,eg遇到LOG,替换成std::cout<<x<<std::endl
//#define LOG(x) std::cout<<x<<std::endl
//在define中如果需要换行,用\ 即可表示代码中的换行,为了美观手动换行,但是代码里的换行要用转义字符\
//禁用自定义区域代码
//#if 0
//#endif

int main()
//OPEN_CURLY
{
LOG(5);
//    std::cin.get();
//    WAIT;
}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值