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

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


建议使用 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定义的常量在你内存中有若干个拷贝.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容