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

陕西建设厅继续教育网站wordpress源代码如何在本地编辑器

陕西建设厅继续教育网站,wordpress源代码如何在本地编辑器,黑龙江建设网网站一体化平台,wordpress 数据库 类型关于用常量取代 #define 的总体原则 在编程中,应尽量减少预处理器(特别是 #define)的使用,可通过合适的替代方式来避免 #define 带来的诸多问题,虽然不能完全消除预处理器相关指令(如 #include、#ifdef/#i…

关于用常量取代 #define 的总体原则

在编程中,应尽量减少预处理器(特别是 #define)的使用,可通过合适的替代方式来避免 #define 带来的诸多问题,虽然不能完全消除预处理器相关指令(如 #include、#ifdef/#ifndef 仍有重要作用),但要让其使用频率降低。

简单常量方面

  1. 问题阐述
    使用 #define 定义常量存在诸多弊端,比如编译器在预处理阶段就将宏名称替换掉,使得该名称不会加入符号表,当出现常量使用错误时,错误信息中显示的是替换后的具体值,不利于查找错误源头,在符号调试器中也会因名字未加入符号表而出现类似问题。而且对于浮点常量,使用 #define 还可能导致目标代码中存在多个相同值的拷贝,增加代码量。
  2. 解决方法
    用 const 对象来取代 #define 定义的简单常量,例如const double AspectRatio = 1.653;,这样的常量能被编译器明确识别并加入符号表,对于浮点常量还能减少代码量。

特殊情况的常量定义

  1. 常量指针相关
    在头文件中定义常量指针(如基于 char * 的字符串常量)时,要注意将指针本身也声明为 const,像const char * const authorName = "Scott Meyers";。不过通常更推荐使用std::string类型来定义字符串常量,如const std::string authorName("Scott Meyers");
  2. 类属常量相关
    若要将常量作用范围限制在类内,需将其作为类的静态成员来声明,对于静态的整型族(如整数、字符、布尔型)类属常量,只要不获取其地址,可只声明不定义就能使用(如class GamePlayerstatic const int NumTurns = 5;声明后可直接在类内使用)。若需要获取地址或者编译器要求必须定义,则要在实现文件中给出定义(如const int GamePlayer::NumTurns;)。对于较老编译器不支持类内初始化语法的情况,可将初始值放在定义处。另外,还有 “the enum hack” 这种替代方法(如class GamePlayerenum { NumTurns = 5 };),它有类似 #define 不能取地址的特点,且在模板元编程等场景有应用,还不会导致不必要的内存分配,很多代码中会使用到这种方式。

类似函数的宏方面

  1. 问题阐述
    使用 #define 定义类似函数的宏(如#define CALL_WITH_MAX(a, b) f((a) > (b)? (a) : (b)))存在很多缺点,比如需要给宏体中的参数都加上括号来避免在表达式中调用时出现意外情况,但即便如此,仍可能出现参数解析次数等不可预测的问题,像宏调用时参数递增次数会因比较对象不同而变化。
  2. 解决方法
    使用内联函数模板来替代类似函数的宏,例如定义template<typename T> inline void callWithMax(const T& a, const T& b),它能获得宏的效率,同时具备完全可预测的行为以及常规函数的类型安全,还遵循函数的作用范围和访问规则。

总之,对于简单常量,用 const 对象或 enums 取代 #define;对于类似函数的宏,用内联函数取代 #define,以此提升代码的质量和可维护性等方面表现。

http://www.yayakq.cn/news/961641/

相关文章:

  • 抢购网站建设智慧团建网站pc端
  • 九度互联网站制作效果贵州网站建设公司哪家好
  • 电子商务网站建设的知识点咖啡网站建设的优势
  • 网站语言wordpress传到ftp
  • 吉林市网站建设优化搜狗网页版入口
  • 泉州制作网站设计哪个网站能帮助做路书
  • 同ip下网站企业网站前期建设
  • 郑州市经开区建设局网站网站图标的制作h1优化代码
  • 怎么做一键添加信任网站网上商城什么意思
  • 淮阴区城乡建设管理局网站地方网站域名用全拼
  • 怎么做自己的淘宝网站中山网站制作策划
  • 门户网站收录竞价网站怎么做seo
  • 网店网站建设哪家自适应平台网站模板
  • 南山网站多少钱电商培训机构哪家强
  • 湖州网站做等保费用文山州住房和城乡建设局网站
  • 免费行情软件网站下载安装南通网站制作怎样
  • 新浪网站源代码免费提供网站
  • 离石市网站建设公司买商标价格一览表
  • wordpress用户站内信室内装饰设计效果图
  • 网站建设多少网页设计与制作工作
  • 网站建设的实验的结论wordpress djd site post
  • 中国建设银行甘肃省分行网站现在公司做网站还需要域名吗
  • 百度网页打不开广告优化师没经验怎么面试
  • 亚马逊海外版网站做网站要几个人 要多少钱
  • 电商网站开发 报价注册空壳公司帮人走账
  • 网站搬迁青岛网站快速排名优化
  • wordpress latex公式seo在线优化
  • 短视频网站的动画是怎么做的做期货的的都喜欢去什么网站
  • 网站建设的步骤是什么深圳住房和建设局网站认租申请
  • 哈密市住房和城乡建设局网站谷歌优化的网络公司