当前位置:首页>> 在C++中定义常量的两种方法的分析比较

在C++中定义常量的两种方法的分析比较

发布时间:2016-01-31作者:智汇小新

  在C++中,要定义一个常量,有两种主要的做法

  1. 符号常量 (#define)

  2. 常值变量 (const)

  符号常量的定义方式,其实与C++本身没有关系,它是一个编译器指令,或者称为预处理指令(有关的预处理指令还有#include,#ifdefine等等)。它的用法如下

  #define PI 3.1415926

  这样的语法就定义了一个叫做PI的符号常量,它的值指定为3.1415926.

  【注意】因为它其实不是C++语法,所以它不需要(也不能)用分号结束。

  我们怎么使用呢

  

  与符号常量相对的,常值变量需要通过const关键字定义。相对来说,const更加现代,它是c++的一个关键字,它的用法如下

  const double PI=3.1415926;

  我们把上面的代码转换一下

  

  总结起来说,我们推荐用const,而不是#define预处理指令

  1. const可以定义数据类型,提高了类型安全性。例如,我们上面可以指定PI这个常量是double类型

  2. const既然是变量(这里有点别扭,它其实是不变的,但名称叫做常值变量),那么就有地址,适用面更加广

  3. 语法上也更好理解一些

  题外话:在C#中能不能使用符号呢?

  C#中也可以使用符号定义,例如下面这样

  

  一般这样做的目的都是为了改变编译行为。因为#define是编译器指令

  除了用#if这样的条件编译语句之外,我们还可以用Conditional指令

  

  [Conditional(“MINI”)]//Conditional 是一个新的Attribute,可以进行条件编译,本例的意思是只有定义了MINI这个符号的情况下,才将该方法编译进去。否则,任何其他调用处都将放一个空白。

  

  但是conditional只能针对void方法,这其实很好理解。因为你要知道,它可能被替换掉,就是可能不被编译。如果它有返回值,而且该值需要被其他程序代码使用,那不就是麻烦了吗?

公司简介

宜科(天津)电子有限公司是中国工业自动化的领军企业,于2003年在天津投资成立,销售和服务网络覆盖全国。作为中国本土工业自动化产品的提供商和智能制造解决方案的供应商,宜科在汽车、汽车零部件、工程机械、机器人、食品制药、印刷包装、纺织机械、物流设备、电子制造等诸多领域占据领先地位。宜科为智慧工厂的整体规划实施提供自系统层、控制层、网络层到执行层自上而下的全系列服务,产品及解决方案涵盖但不局限于云平台、MES制造执行系统、工业现场总线、工业以太网、工业无线通讯、机器人及智能设备组成的自动化生产线、自动化电气控制系统集成、智能物流仓储系统等,以实现真正智能化的生产制造,从而带来生产力和生产效率的大幅提升,以及对生产灵活性和生产复杂性的管理能力的大幅提升。多年来,宜科以创新的技术、卓越的解决方案和产品坚持不懈地为中国制造业的发展提供全面支持,并以出众的品质和令人信赖的可靠性、领先的技术成就、不懈的创新追求,在业界独树一帜。帮助中国制造业转型升级,加速智能制造进程,成为中国工业4.0智慧工厂解决方案当之无愧的践行者。

更多详情>>

联系我们

  • 联系人:章清涛
  • 热线:18611695135
  • 电话:
  • 传真:
  • 邮箱:18210150532@139.com

Copyright © 2015 ilinki.net Inc. All rights reserved. 智汇工业版权所有

电话:010-62314658 邮箱:service@ilinki.net

主办单位:智汇万联(北京)信息技术有限公司

京ICP备15030148号-1