宏定义和带参数的宏

简介: 宏定义和带参数的宏
#include<iostream>
using namespace std;
//不带参数的宏
#define PI 3.1415926
//带参数的宏
#define FUN(x) x*x
#define FUN2(x) (x)*(x)
#define MAX(x,y) x>y?x:y
int main(void){
    int i = 10;
  int j = FUN(i);//j = i*i   10*10
  cout << j << endl;//100
  int x = 10;
  int y = 20;
  int z = MAX(x, y);//x>y?x:y
  cout << z << endl;//20
  //特别注意:
  int m = FUN(2 + 3);//正确结果:2+3*2+3  错误结果:5*5
  cout << m << endl;//11
  //区别:
  int m2 = FUN2(2 + 3);//正确结果:(2+3)*(2+3)  
  cout << m << endl;//25
  system("pause");
  return 0;
}

什么是宏:宏是一种预处理器命令,在预编译阶段将宏名替换为后面的替换体.

宏的优点:

1.提高代码的可读性和可维护性.

2.避免函数调用,提高程序效率.

目录
相关文章
|
Java Android开发
EventBus简单介绍
EventBus简单介绍
195 0
|
存储 数据安全/隐私保护
STM32实战项目—密码锁
本文完整详细地介绍了一个密码锁项目的要求,设计思路,程序实现,问题总结和成果展示内容。
571 2
STM32实战项目—密码锁
|
20天前
|
缓存 前端开发 Docker
Docker Layer Caching:加速你的容器构建
Docker Layer Caching:加速你的容器构建
|
分布式计算 Hadoop Java
Hadoop编辑hadoop-env.sh文件
【7月更文挑战第19天】
890 5
|
移动开发 开发框架 JavaScript
Vue3 Vite electron 开发桌面程序
Vue3 Vite electron 开发桌面程序
489 0
|
Ubuntu 网络协议
Ubuntu 系统中网络总是断掉重新连接
Ubuntu 系统中网络总是断掉重新连接
634 5
|
安全 算法 网络安全
信息安全:VPN 技术原理与应用
信息安全:VPN 技术原理与应用
851 2
|
运维 Linux Apache
如何使用`systemctl status`命令来查看服务状态?
如何使用`systemctl status`命令来查看服务状态?
1249 0
|
机器学习/深度学习 算法 计算机视觉
红绿灯识别、倒计时识别(代码+教程)
红绿灯识别、倒计时识别(代码+教程)
|
数据可视化 定位技术 数据处理
Python数据可视化——风析图
Python数据可视化——风析图
326 1