当前位置: 首页 > news >正文

建站推荐网站百度速页建站

建站推荐网站,百度速页建站,标签在数据库wordpress,西安的网站设计与制作首页关于用常量取代 #define 的总体原则 在编程中#xff0c;应尽量减少预处理器#xff08;特别是 #define#xff09;的使用#xff0c;可通过合适的替代方式来避免 #define 带来的诸多问题#xff0c;虽然不能完全消除预处理器相关指令#xff08;如 #include、#ifdef/#i…关于用常量取代 #define 的总体原则 在编程中应尽量减少预处理器特别是 #define的使用可通过合适的替代方式来避免 #define 带来的诸多问题虽然不能完全消除预处理器相关指令如 #include、#ifdef/#ifndef 仍有重要作用但要让其使用频率降低。 简单常量方面 问题阐述 使用 #define 定义常量存在诸多弊端比如编译器在预处理阶段就将宏名称替换掉使得该名称不会加入符号表当出现常量使用错误时错误信息中显示的是替换后的具体值不利于查找错误源头在符号调试器中也会因名字未加入符号表而出现类似问题。而且对于浮点常量使用 #define 还可能导致目标代码中存在多个相同值的拷贝增加代码量。解决方法 用 const 对象来取代 #define 定义的简单常量例如const double AspectRatio 1.653;这样的常量能被编译器明确识别并加入符号表对于浮点常量还能减少代码量。 特殊情况的常量定义 常量指针相关 在头文件中定义常量指针如基于 char * 的字符串常量时要注意将指针本身也声明为 const像const char * const authorName Scott Meyers;。不过通常更推荐使用std::string类型来定义字符串常量如const std::string authorName(Scott Meyers);。类属常量相关 若要将常量作用范围限制在类内需将其作为类的静态成员来声明对于静态的整型族如整数、字符、布尔型类属常量只要不获取其地址可只声明不定义就能使用如class GamePlayer中static const int NumTurns 5;声明后可直接在类内使用。若需要获取地址或者编译器要求必须定义则要在实现文件中给出定义如const int GamePlayer::NumTurns;。对于较老编译器不支持类内初始化语法的情况可将初始值放在定义处。另外还有 “the enum hack” 这种替代方法如class GamePlayer中enum { NumTurns 5 };它有类似 #define 不能取地址的特点且在模板元编程等场景有应用还不会导致不必要的内存分配很多代码中会使用到这种方式。 类似函数的宏方面 问题阐述 使用 #define 定义类似函数的宏如#define CALL_WITH_MAX(a, b) f((a) (b)? (a) : (b))存在很多缺点比如需要给宏体中的参数都加上括号来避免在表达式中调用时出现意外情况但即便如此仍可能出现参数解析次数等不可预测的问题像宏调用时参数递增次数会因比较对象不同而变化。解决方法 使用内联函数模板来替代类似函数的宏例如定义templatetypename T inline void callWithMax(const T a, const T b)它能获得宏的效率同时具备完全可预测的行为以及常规函数的类型安全还遵循函数的作用范围和访问规则。 总之对于简单常量用 const 对象或 enums 取代 #define对于类似函数的宏用内联函数取代 #define以此提升代码的质量和可维护性等方面表现。
http://www.dnsts.com.cn/news/105978.html

相关文章:

  • 90自己做网站微网站在线制作
  • 网站建设 重庆做图片格式跟尺度用哪个网站好
  • 高端网站开发案例展示百度一下电脑版首页
  • 网站开发总出现出现404我的世界服务器网站建设
  • 网站开发项目中的rdWordPress需要编程知识吗
  • 设计公司网站时什么是重要的怎么做网站实惠
  • 专业的免费网站建设哪家网站制作公司茂名
  • 安徽网站优化价格咨询自助建站系统php
  • 杭州 网站建站站长工具传媒
  • 邱县网站建设阿里云域名购买流程
  • 建筑公司企业网站橘子seo工具
  • 建设网站的政策风险分析网站点击量软件
  • 基于开源框架的网站开发如何建设教师网上授课网站
  • 网站建设方案哪家好 推荐wordpress 开发实例
  • 滕州英文网站建设中国平面设计和网站建设
  • 家里电脑做网站服务器seo搜索优化公司报价
  • 为何网站打开慢站建设培训学校
  • 书画展示网站模板群晖 做网站
  • 大型门户网站建设工作总结万网的app叫什么
  • 北京pk10盘制作网站建设网站建设费 无形资产
  • 网站开发的嘉兴小程序定制
  • 坪山网站建设信息搜索引擎优化自然排名的区别
  • 珠海网站设计哪家好哈尔滨信息网招聘
  • 天津做网站哪家服务好域名请记住222922
  • 网站建设的基本内容浏览器怎么下载视频
  • 购门网站建设做微信的网站叫什么
  • mooc网站开发案例深圳高端网站建设公司
  • 阿里云nas做网站南阳最新通知今天
  • 数据共享网站建设凡科做的免费网站
  • 企业网站建设规划的基本原则phpcms旅游网站模板