使用const 常量 代替 宏定义 需注意的问题 |
您所在的位置:网站首页 › 宏常量和const常量 › 使用const 常量 代替 宏定义 需注意的问题 |
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 |