gpt4 book ai didi

c - 在 ANSI C 中声明常量变量的标准是什么?

转载 作者:太空狗 更新时间:2023-10-29 15:02:55 25 4
gpt4 key购买 nike

我通过阅读我的 C++ 书籍并重新编写 C 中的问题来自学 C。我想知道在 C 中声明变量常量的正确行业标准方法。你还在使用 #define 指令在 main 之外,还是可以在 main 内使用 C++ 样式 const int

最佳答案

C 中的

const 与 C++ 中的 const 非常不同。

在 C 中,这意味着不会通过该标识符修改对象:

int a = 42;
const int *b = &a;

*b = 12; /* invalid, the contents of `b` are const */
a = 12; /* ok, even though *b changed */

此外,与 C++ 不同,不能使用 const 对象,例如,在开关标签中:

const int k = 0;
switch (x) {
case k: break; /* invalid use of const object */
}

所以......这真的取决于你需要什么。

你的选择是

  • #define:确实是 const 但使用预处理器
  • const:不是真正的 const
  • enum:限于int

更大的例子

#define CONST 42
const int konst = 42;
enum /*unnamed*/ { fixed = 42 };

printf("%d %d %d\n", CONST, konst, fixed);

/* &CONST makes no sense */
&konst; /* can be used */
/* &fixed makes no sense */

关于c - 在 ANSI C 中声明常量变量的标准是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6542270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com