【问题标题】:Call a char pointer in the function [duplicate]在函数中调用char指针[重复]
【发布时间】:2020-08-07 18:10:18
【问题描述】:

我看到了这段代码。但不知道目的是什么。

void a()
{
  static const char *string = "STRING";
  ...
  (void)string;  // <---- What the purpose of the line is?
  ...
}

【问题讨论】:

    标签: c string void


    【解决方案1】:

    (void) 在这样的变量之前创建一个空表达式,并用于消除有关程序未使用变量的警告。

    在这种特定情况下,最好简单地注释掉变量声明。

    【讨论】:

    • 字符串可能是这样定义的,用于调试或其他目的(例如嵌入版本或版权字符串),即它显示在可执行文件中。
    • @PaulR 不是真的。如果你想要一个只位于可执行文件中的死字符串,它应该在文件范围内声明为volatile。因为本地 const 变量往往最终会出现在堆栈中,因此更容易被优化出来。
    • 几乎任何体面的现代编译器都是正确的,但它可能是古老的代码,也可能是作者的意图与现实不符。我只是在冒险猜测最初的意图可能是什么。
    猜你喜欢
    • 1970-01-01
    • 2019-09-19
    • 1970-01-01
    • 1970-01-01
    • 2016-01-05
    • 2015-01-02
    • 1970-01-01
    • 2015-04-29
    • 2016-06-10
    相关资源
    最近更新 更多