【问题标题】:How to check if a string is constant - C如何检查字符串是否为常量 - C
【发布时间】:2013-10-27 18:16:02
【问题描述】:

如何检查字符串是否为常量?

点赞const char *name;

我想检查 name 在 C 语言中是否是一个常量。

我该怎么做?

【问题讨论】:

  • 嗯。你的变量声明已经告诉你就其使用而言它指向它的常量。如果您想知道是否有一种符合标准的方式,给定一些作为const char* 传递给您的有效指针,您可以确定它是可写数组的地址还是只读文字的地址,不存在这样的设施(这是一件好事,否则会被严重滥用)。
  • 我假设你会想要这个用于常量的不同代码路径。有关编译器特定版本,请参阅gcc.gnu.org/onlinedocs/gcc/…

标签: c string constants


【解决方案1】:

我猜你想在运行时检查它——这在 C 语言中是不可能的。另一方面,在编译期间,如果您想将常量变量重新分配给某个值,编译器会报告错误。

【讨论】:

    【解决方案2】:

    据我所知,您实际上无法检查变量是否为常量,因为 const 是一个可以丢弃的编译时概念。

    Here你可以看到更多细节。

    【讨论】:

      猜你喜欢
      • 2020-05-28
      • 2013-03-07
      • 2011-02-20
      • 2012-04-13
      • 1970-01-01
      • 2019-01-25
      • 2013-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多