宏定义和带参数的宏

简介: 宏定义和带参数的宏
#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.避免函数调用,提高程序效率.

目录
相关文章
|
6月前
|
编译器 C语言
C语言宏定义(#define定义常量​、#define定义宏​、 带有副作用的宏参数、 宏替换的规则、 宏函数的对比)
C语言宏定义(#define定义常量​、#define定义宏​、 带有副作用的宏参数、 宏替换的规则、 宏函数的对比)
|
6月前
|
存储 C++
c/c++宏定义(函数)
c/c++宏定义(函数)
|
6月前
|
算法 Serverless C语言
CMake函数和宏(function和macro):使用函数和宏提高代码可读性
CMake函数和宏(function和macro):使用函数和宏提高代码可读性
129 1
|
6月前
|
C语言
详解C语言可变参数列表(stdarg头文件及其定义的宏)
详解C语言可变参数列表(stdarg头文件及其定义的宏)
97 0
|
C++
C++宏 #与##的区别
C++宏 #与##的区别
54 0
|
存储 安全 编译器
【为什么】C++中的宏
【为什么】C++中的宏
130 0
|
C语言
gcc编译时传递宏定义
gcc编译时传递宏定义
268 0