C++ 14 之 宏函数

c14宏函数.cpp

cpp 复制代码
#include <iostream>
using namespace std;

// #define PI 3.14
// 宏函数
// 宏函数缺陷1: 必须用括号保证运算的完整性
#define MY_ADD(x,y) ((x)+(y))

// 宏函数缺陷2:即使加了括号,有些运算依然与预期不符
#define MY_COM(a,b) (((a) < (b)) ? (a) : (b))

// 普通函数 不会出现与与其不符的恩情况
// void my_com_pu()
// {

// }

int main()
{
    // 缺陷1:
    // int a = 10;
    // int b = 20;
    // int res = MY_ADD(a,b);
    // int res = MY_ADD(a,b) * 2;  // a + b * 2   // 结果为50
    // int res = (MY_ADD(a,b)) * 2;    // (10 + 20) * 2
    // int res = MY_ADD(a, b) * 2;
    // cout << res << endl;
    // 
    // 缺陷2:
    int a = 10;
    int b =  20;
    int res = MY_COM(++a,b);    // 我认为是11 实际展开结果为:++a < b ? ++a : b 实际结果为12
    cout << res << endl;

    

    return 0;
}
相关推荐
阿里嘎多学长2 分钟前
2025-12-21 GitHub 热点项目精选
开发语言·程序员·github·代码托管
wanghowie8 分钟前
01.04 Java基础篇|泛型、注解与反射实战
java·开发语言·windows
DechinPhy11 分钟前
使用Python免费合并PDF文件
开发语言·数据库·python·mysql·pdf
qq_2526144115 分钟前
python爬虫爬取视频
开发语言·爬虫·python
言之。16 分钟前
Claude Code Skills 实用使用手册
java·开发语言
Rinai_R20 分钟前
关于 Go 的内存管理这档事
java·开发语言·golang
咸鱼加辣21 分钟前
【python面试】你x的启动?
开发语言·python
渡我白衣23 分钟前
计算机组成原理(8):各种码的作用详解
c++·人工智能·深度学习·神经网络·其他·机器学习
tyatyatya29 分钟前
MATLAB图形交互教程:鼠标拾取/坐标轴交互/动态绘图实战详解
开发语言·matlab·计算机外设
乐茵lin30 分钟前
golang中 Context的四大用法
开发语言·后端·学习·golang·编程·大学生·context