gpt4 book ai didi

c - 如何消除有关 __FUNCTION__ 的 GCC 迂腐 (-Wpedantic) 警告

转载 作者:行者123 更新时间:2023-12-02 14:23:16 31 4
gpt4 key购买 nike

当我使用“__FUNCTION__”预定义宏(在 gcc 和 clang 中)输入函数时,我正在打印(printf)函数的名称。但是,如果我使用 -Wpedantic,我会收到此警告:

warning: ISO C does not support ‘__FUNCTION__’ predefined identifier [-Wpedantic]

如何消除该警告?

最佳答案

没有理由使用__FUNCTION__

__func__ 是标准的(C99、C11、C17)。 C11 6.4.2.2p1:

  1. The identifier __func__ shall be implicitly declared by the translator as if, immediately following the opening brace of each function definition, the declaration

    static const char __func__[] = "function-name";

来自GCC documentation :

__FUNCTION__ is another name for __func__, provided for backward compatibility with old versions of GCC.

如果你想知道__func__出现在 GCC 2.95 中多久了? ,于1999 年 7 月 31 日发布。请注意,您不需要 __FUNCTION__ 来实现其他,但支持 GCC 2.94 或更早版本。如果您这样做,那么该警告可能是您最不用担心的。

<小时/>

但是,__func__ 在 C89/90 模式下也不可用,因此您会收到警告。如果您关心 ISO 诊断,那么您需要使用更新的版本。现代 GCC 已经默认为 GNU C11 或 C17。

<小时/>

另请参阅: What's the difference between __PRETTY_FUNCTION__, __FUNCTION__, __func__

关于c - 如何消除有关 __FUNCTION__ 的 GCC 迂腐 (-Wpedantic) 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52962812/

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