【问题标题】:Facing Lint Warning 560: argument no. 3 should be a pointer面对 Lint 警告 560:参数号。 3 应该是一个指针
【发布时间】:2017-04-09 13:24:58
【问题描述】:

当我用 lint 编译我的程序时,它会发出 lint 警告。

printf("[Line:%d] at [Func:%s] failed to detect device\n"
                                        , __LINE__, __func__);

对于此打印消息,我收到以下错误

Warning 560: argument no. 3 should be a pointer

谁能帮帮我?

【问题讨论】:

  • 你用的是什么编译器?
  • gcc 版本 4.9.2 20150212 (Red Hat 4.9.2-6) (GCC)
  • 也许应该是__FUNC__ 而不是__func__
  • @AlexLop。 - 在错误诊断标准兼容代码的 lint 警告上建议编译器扩展是非常糟糕的建议。而且您知道这一点,否则您会将其发布为可以收到适当反馈的答案。
  • @zwol FlexeLint 用于 C/C++ (Unix) 版本。 9.00f,版权所有 Gimpel Software 1985-2010

标签: c lint


【解决方案1】:

您的原始代码(带有__func__)是正确的; lint 警告是错误的。

__func__ 是 C 标准 1999 年修订版“C99”的一个特征。我不能确定这一点,因为FlexeLint 是非常昂贵的专有软件,它们甚至不允许您免费阅读完整的手册,但我强烈怀疑它默认为较旧的 C89 标准。应该有一个命令行选项或将其置于 C99 模式的东西,并且在该模式下,您的原始代码应该被毫无怨言地接受。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-31
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-08
    • 2019-01-03
    相关资源
    最近更新 更多