使用#定义;ansic中的符号常量

使用#定义;ansic中的符号常量,c,C,在通过K&R的C编程语言遇到符号常量之后,我没有看到它们的用法/重要性。我宁愿使用“实”常量,比如整数,也不愿使用\define语句。我明白你为什么要说 #define PI 3.14 与只在程序中键入“3.14”相反,如果 我可以用 static const double PI = 3.14; 符号常量是今天使用的,还是仅仅是语言的一个特征,在“过去”更有用 您建议我用什么来表示常量?#define很旧,只是由预处理器处理的文本替换。例如,当您定义PI 3.14时,预处理器只需用数字文字3

在通过K&R的C编程语言遇到符号常量之后,我没有看到它们的用法/重要性。我宁愿使用“实”常量,比如整数,也不愿使用
\define
语句。我明白你为什么要说

#define PI 3.14
与只在程序中键入“3.14”相反,如果 我可以用

static const double PI = 3.14;
符号常量是今天使用的,还是仅仅是语言的一个特征,在“过去”更有用

您建议我用什么来表示常量?

#define
很旧,只是由预处理器处理的文本替换。例如,当您定义PI 3.14时,预处理器只需用数字文字3.14替换所有出现的
PI

const
较新,并且依赖于编译器。可以在编译时或运行时对其进行评估。它还提供了范围


我个人使用
#define
,因为它是在编译时进行评估的保证对象,并且它还有其他灵活的用途。

这与您的有什么不同?另一个更好的选项是
typedef const int PI=3.14
@devnull我的另一个问题与这个问题完全不同。。。