gpt4 book ai didi

c - 如何在不推荐使用的函数可用的情况下在 Linux/GCC 上编译 C 代码?

转载 作者:IT王子 更新时间:2023-10-29 00:13:29 24 4
gpt4 key购买 nike

indexrindex 等旧函数现在已被 strchrstrrchr 取代。

有没有办法配置编译器或定义这些函数不可用?

在以下情况下可能会导致令人困惑的警告:

  • 意外地在范围之外使用 index 名称,例如 - 或者更糟,没有发出警告并以非预期的方式使用该函数。
  • 如果您有一个名为 index 的变量,则较旧的 GCC 版本 (4.x) 在使用 -Wshadow 时会发出警告。

参见:


注意事项:

  • 正如@antti-haapala 所说,全局符号 index 不应该被重新定义,因为库可能会使用它。
    这个问题是关于局部变量被称为 index 的常见情况。
  • 在撰写本文时,glibc 并未使用 deprecated 属性标记这些函数,因此与使用已弃用函数相关的警告无效。

最佳答案

在 ISO C 模式下使用编译器。 C 标准禁止符合规范的程序因存在非保留字的标识符而被破坏。

例如,使用标志 -std=c99

示例程序:

#include <string.h>

int main()
{
index("abc", 'x');
}

使用 -std=c11 -Werror 编译给出:

error: implicit declaration of function 'index' [-Werror=implicit-function-declaration]

关于c - 如何在不推荐使用的函数可用的情况下在 Linux/GCC 上编译 C 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37000926/

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