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;
}
相关推荐
Shun_Tianyou14 分钟前
Python Day17 面向对象 及例题分析
开发语言·数据结构·python·算法
wjs202423 分钟前
XML 用途
开发语言
Dreamsi_zh41 分钟前
Python爬虫07_Requests爬取图片
开发语言·爬虫·python
蒋星熠1 小时前
字母异位词分组(每天刷力扣hot100系列)
开发语言·c++·算法·leetcode·职场和发展
杨航 AI1 小时前
PHP 5.5 Action Management with Parameters (English Version)
android·开发语言·php
Darkwanderor1 小时前
哈希相关的模拟实现
数据结构·c++·算法·哈希算法
代码的余温1 小时前
Java试题-选择题(2)
java·开发语言
lemon_sjdk1 小时前
java笔记——ConcurrentLinkedQueue
java·开发语言·笔记
封奚泽优2 小时前
使用Python制造扫雷游戏
开发语言·python·游戏·pygame·扫雷·random
超浪的晨2 小时前
Maven 与单元测试:JavaWeb 项目质量保障的基石
java·开发语言·学习·单元测试·maven·个人开发