const 定义一个常量
const是一个C/C++中的保留词,用来定义一个常量。常量通常是一些固定的数值,比如光的速度$C$、圆周率$\pi$、以及一分钟总共有60s等等。
但光速和圆周率,都是一些难以精确的数据,在使用时必须选取一定的精度,因此需要在显眼的位置标注你要使用的具体数值,比如
const double C=299792458.458; // unit m/s
const double C=299792458; // unit m/s
const double PI = 3.14
const double PI = 3.1415926
不同的需求选择不同的精度,因此,将程序所使用的常量,统一地在文件头或指定的文件中标注出来,是很必要的。
const
与 #define
#define
同样可以用来定义常量
#define C 299792458.458; // unit m/s
#define C 299792458; // unit m/s
#define PI 3.14
#define PI 3.1415926
但相对来说,推荐使用const来定义常量
- const具有数据类型,能够进行类型检查,避免类型错误
- const常量可以被调试。define只能展开,无法调试
- const的作用域可以是块作用域、函数作用域或类作用域,而define没有作用于限制,在整个文件中可用。
- const可以在类中使用,可以利用类的封装特性
- const可能使编译器产生更高效的代码。但 const 是否加速程序,要看具体的编译器
define更适合进行预编译链接和代码编译选项的相关处理。
const 最合适用来在作用域内规定某些常量不可更改
const除了可能的性能优化外,更重要的是它对代码维护的正面影响。
- 避免意外修改:const确保某些数据结构或值在整个程序生命周期中都不会被修改,降低了出错的风险。
- 清晰的接口设计:在函数参数中使用const可以明确哪些参数是用于输入的,哪些可能被改变,提高了代码的可读性和健壮性。
python和C#中没有const
对于Py和C#来说,完成const的功能只需要定义一个单独的类即可,不需要额外的关键词 const。