美文网首页
为什么少用#define预处理指令

为什么少用#define预处理指令

作者: 落日河谷 | 来源:发表于2017-08-06 23:33 被阅读0次

用预处理指令定义常量,这样定义的常量不含类型信息,编译器只是会在编译前执行进行替换操作, 即使有人重新定义了常量值,编译器也不会发生警告

建议使用 const 定义常量

const int Max =100;  定义的常量,具有不可更改性.

可以进行类型检查

可以节省空间,避免不必要的内存分配,

# define  PI 3.14159 //常量宏

double I =PI ;   //执行替换 ,分配内存

double j =PI ; // 执行替换,分配内存

.....

const double Pi =3.14159;  // 此时并未将PI放入ROM中,  double i =Pi;//此时 为PI 分配内存内存,以后不再分配.

double I =PI ;  //分配内存,只分配一次

double j =Pi ;//没有内存分配.

const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在你内存中有若干个拷贝.

相关文章

网友评论

      本文标题:为什么少用#define预处理指令

      本文链接:https://www.haomeiwen.com/subject/wyanlxtx.html