const与#define最大的差别在于:前者在堆栈分配了空间,而后者只是把具体数值直接传递到目标变量罢了。或者说,const的常量是一个Run-Time的概念,他在程序中确确实实的存在可以被调用、传递。而#define常量则是一个Compile-Time概念,它的生命周期止于编译期:在实际程序中他只是一个常数、一个命令中的参数,没有实际的存在。 const常量存在于程序的数据段. #define常量存在于程序的代码段。
//#define APSECT_RATIO 1.653;
const double ApsectRatio=1.653;//改为使用const 常量,ApsectRatio肯定会被编译器看见,当然就会进入记号表