【问题标题】:C statement const meaningsC 语句 const 含义
【发布时间】:2011-09-03 07:27:19
【问题描述】:

在下面的代码中,第一个和第二个const是什么意思?

我猜第一个或第二个意味着foo 是不变的;另一种意味着foo 的元素也是常量。是真的吗?

static const char * const foo[] = {"bar", "baz"};

【问题讨论】:

  • 我也试过了: const static const const char * const foo[] = {"bar", "baz"};并且用 gcc 编译没有问题。我认为编译器会忽略额外的 const。
  • 有趣的是,您可以根据需要添加任意数量
     static const const const char * const const foo[] = {"bar", "baz"}; 
    gcc 即使使用 -Wall -Wextra 也不给出错误警告

标签: c syntax constants


【解决方案1】:

见cdecl:

declare foo as array of const pointer to const char

【讨论】:

    【解决方案2】:

    这意味着它是一个 const 指针数组(因此您无法更改指针)到 const chars(因此您无法通过指针更改字符)。这是在应用程序中定义固定字符串(例如命令名称)的常用方法。

    【讨论】:

      猜你喜欢
      • 2014-05-16
      • 2012-04-19
      • 2015-07-24
      • 2010-12-17
      • 1970-01-01
      • 2023-03-28
      • 2018-10-04
      • 2014-06-14
      • 2012-01-29
      相关资源
      最近更新 更多