# 宏定义

1 概念

宏定义一般是不安全的所以cpp一般用const 来定义数

1.1特点:

  • 直接文本替换
  • 没有数据类型

1.2宏定义只是存文本替换

# define Num 100 //其实就是100的一个文本,没有类型

条件编译
在大规模开发,特别是跨平台和系统的软件里,define 最重要的功能是条件编译。如下:

#ifdef  WINDOWS
    // 如果 WINDOWS 宏被定义了,就执行这里的内容
#endif

#ifdef  LINUX
    // 如果 LINUX 宏被定义了,执行这里的内容
#else
    // 如果 LINUX 宏没有被定义,执行这里的内容
#endif 

define 的多行定义

#define  MACRO(arg1,arg2)  do{\
/*declarations*/\
stmt1;\
stmt2;\
/*...*/\
}while(0)/*(notrailing;)*/ 

2不安全性质

#define sum(a, b) a+b

那么求 a*sum(b,c) *d 本来的代数运算是a * (b + c) * d 结构是 a * b + c * d

#define  pin  (int *)
pin  a, b; 

pin代表int指针
pin a,b本来准备是a,b都是int指针,但是这里只有a为指针 转化为int *a, b;

所以我们在定义的时候,养成一个良好的习惯,建议所有的层次都要加括号

参考

鱼c

posted @ 2023-03-30 12:43  壹剑霜寒十四州  阅读(13)  评论(0编辑  收藏  举报