C/C++宏而不是const
发布时间:2020-12-16 10:51:22 所属栏目:百科 来源:网络整理
导读:参见英文答案 What is the difference between #define and const? ????????????????????????????????????6个 宏#define MAX 80相当于const int MAX = 80;两者都是常数,不能修改. 使用宏而不是常量整数不是更好吗?常量整数占用内存.预处理器将宏的名称替换
参见英文答案 >
What is the difference between #define and const? ????????????????????????????????????6个
宏#define MAX 80相当于const int MAX = 80;两者都是常数,不能修改. 使用宏而不是常量整数不是更好吗?常量整数占用内存.预处理器将宏的名称替换为其值,对吧?所以它不会记忆. 为什么我会使用const int而不是宏? 解决方法
原因#1:范围界定.宏完全忽略了范围.
namespace SomeNS { enum Functor { MIN = 0,AVG = 1,MAX = 2 }; } 如果上面的代码恰好包含在MAX宏定义之后的文件中,那么它将很高兴地被预处理为80 = 2,并且编译失败. 另外,const变量是类型安全的,可以使用常量表达式安全地初始化(不需要括号)等. 还要注意,当编译器在使用它时可以访问const变量的定义时,允许它“内联”其值.所以如果你从不拿它的地址,它甚至不需要占用空间. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读