国学经典,永久流传《诗经朗诵全集》
《诗经朗诵全集》带你领略国学经典,永久咏传。...
2023-07-31
C++中,常见的常量类型定义方法有define、const、constexpr,那么他们分别有什么特点呢?
时间维度
作用目标
优缺点
范例
define
预编译期:
进行字符串模板的替换。
字符串
代码不会进行类型检查:
符号丢失、
没有范围、
没有类型
#define MAX_TEST_COUNT 5
const
编译期:
对常量的只读性进行限制。
从而在运行期可以保证常量是只读的,不能改变。
对象/变量
cont修饰的变量也不能保证一定不会被修改。
const int i_g_count = 10;
const string s_g = "abcd";
const char * const p_c_g_str = "bdef";
constexpr
编译期:
对常量的只读性进行限制。
在编译期就把结果计算出来并进行替换了。
在函数内部定义时,是运行期把结果计算并赋值)。
对象/变量
简化模板元编程,使得模板元编程变得合理且可接受的。
constexpr int i_g_count = 10;
注意:cont修饰的变量也不能保证一定不会被修改。
比如string和char *变量,可以通过强制对字符数组某个元素进行修改。
//先去const属性再引用,然后修改。 void test() { //范例1 const string name = "abcd"; string& str = const_cast<string&>(name); str[0] = 'x'; cout << str << endl;//输出xbcd //范例2 string str_new = "xyz"; const char* temp = str_new.c_str(); char* str2 = (char*) temp; str2[0] = 'm'; cout << str2 << endl;//输出myz }
原创不易,欢迎关注、转发、点赞、收藏!
以上内容就是为大家推荐的define(「C++」define、const、constexpr分别有哪些特点)最佳回答,如果还想搜索其他问题,请收藏本网站或点击搜索更多问题
内容来源于网络仅供参考版权声明:所有来源标注为小樱知识网www.cnfyy.com的内容版权均为本站所有,若您需要引用、转载,只需要注明来源及原文链接即可。
本文标题:define(「C++」define、const、constexpr分别有哪些特点)
本文地址:https://www.cnfyy.com/shcs/798420.html
相关文章
热点文章
2021年独生子女补贴新政策是真的吗(独生子女证有有效期吗)
2021年国庆节阅兵仪式几点开始几点结束(2021年国庆节还有阅兵吗)
鼠目寸光一点红是什么生肖动物(鼠目寸光一点红)指什么生肖,紧密
k0到k9的玩法大全(强制gc的玩法和注意事项)
入土为安是什么生肖《入土为安》打一个生肖动物,词语解释
浙江12月底全面停工是真的吗(浙江什么时候放假停工)
如何做t(t怎么把p做哭)
北京口碑最差的三甲医院(北京301医院最擅长什么)