宏、常量、枚举型区别

发布时间:2016-12-10 16:52:19 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"宏、常量、枚举型区别",主要涉及到宏、常量、枚举型区别方面的内容,对于宏、常量、枚举型区别感兴趣的同学可以参考一下。

宏和常量都是C层级的。其中宏是预处理过程的,真正到编译的时候宏已经没了比如 #define N 10 printf("%d\n", N); 最后交给编译器的是 printf("%d\n", 10); 常量严格说是常变量,区分直接写的1, 'x', "abc"这种“常量”(literal) 常变量本质上仅仅是不允许修改的变量。但是实现上,因为在编译的时候值已经确定,编译器会直接使用值,不进行读取变量的操作。 const int i = 0; 原则是仅仅是不允许再对i进行复制而已。 但是对于下面写 int x = i; 编译器可能会直接将其作为int x = 0处理。另外不要尝试用任何手段对常变量赋值(也就是说其实可以赋值),因为你这么之后在不同编译器上会得到不同的结果。 枚举类似性质上类似于“常量”而不是“常变量” enum {  a = 1,  b, } int x = a; 编译器就是作为int x = 1处理的。或者说a就是1。上面那个a其实还是个保存着1的变量

上一篇:关于Java对象序列化您不知道的5件事(3)
下一篇:在Oracle数据库中查询所有触发器、存储过程、视图、表的两种方法

相关文章

相关评论