使用const 常量 代替 宏定义 需注意的问题

您所在的位置:网站首页 宏常量和const常量 使用const 常量 代替 宏定义 需注意的问题

使用const 常量 代替 宏定义 需注意的问题

2023-09-22 06:55| 来源: 网络整理| 查看: 265

1.  #define   PI   3.1415 这是一个很常见的宏定义

    不过,在c++中,effective c++中曾指出过,尽量用const 定义常量,来替换宏定义。

    const double PI = 3.1415;

    好处: const 替换 宏定义后,编译时能进行类型检查,一旦出错后,比宏定义更方便调试。

2. 我们来思考一个问题,如果多个文件需要使用 常量PI,则在每个文件中都如下定义,const double PI = 3.1415;此时,你是否会想,存在变量冲定义的问题吗?

    其实,const定义的变量,只在定义所在文件有效,所以,多个文件同时定义 const double PI = 3.1415; 相当于不同的变量,不会造成变量重定义。

3. 我们再思考一个问题,如果有如下语句  const int  Num = fx();  其中fx()返回一个int,我们需要在多个文件共享变量Num,此时,需如何处理?

    其实很简单,只在一个文件中定义Num,如下 extern const int Num = fx(); 注意,此时extern关键字,必须要加,其余需要使用Num的文件中,只需声明即可, extern const int Num;

4. 最后,在思考一个问题,正常情况下非const变量,如果想在多个文件中共享,如何处理?

    与3的情况比,略微有些不一样,如果需在多个文件共享,则需要声明为extern,很简单,定义只在一个文件,int Cnt = 25; 其余需要使用该变量Cnt的文件中,声明为外部变量即可,如下  extern int Cnt;

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3