宏和函数 的区别

本文详细阐述了宏与函数在C++中的核心差异。宏是预处理器指令,执行文本替换,不涉及计算,且不占用运行时内存。而函数则在编译后生成可执行代码,每次调用都会执行。示例展示了带参数的宏定义及使用,强调了宏在特定场景下的应用。
摘要由CSDN通过智能技术生成

带参数的宏和函数很相似,但有本质上的区别:宏展开仅仅是字符串的替换,不会对表达式进行计算;宏在编译之前就被处理掉了,它没有机会参与编译,也不会占用内存。而函数是一段可以重复使用的代码,会被编译,会给它分配内存,每次调用函数,就是执行这块内存中的代码。

宏的本质是文本替换

#include <iostream>
using namespace std;

#define SAY_WHAT(whatasd) \
void helllo##whatasd(char* whatasd)\
 { \
    cout << whatasd << endl;\
 }

namespace jian {
    SAY_WHAT(SD);
}

namespace jian {
    void foo() {
        hellloSD("why");
    }
}

int main()
{
    jian::hellloSD("sad");
    jian::foo();
    system("pause");
}

参考:
https://blog.csdn.net/weixin_30823683/article/details/98192652

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值