gpt4 book ai didi

c - 如果使用函数,编译器会发出警告

转载 作者:行者123 更新时间:2023-12-01 08:59:32 25 4
gpt4 key购买 nike

我有 中号有很多调用的代码 strcmpstrcpy这导致了各种问题。
我想将此迁移到 strncmpstrncpy但我现在无法更新所有代码。我想在使用函数的地方添加编译器警告。

以下强制替换 #define strcmp(x,y) strncmp16(x,y,64)但问题仍然在代码中。

有没有办法添加 #warning这样代码仍然可以编译,但会因不使用调整大小的函数而发出警告。

它是一个大型代码库,必须在四种不同的编译器(GCC、IAR、GHS 和 VC)中编译。是我们自己的中号主要用于嵌入式系统的库。

编辑:我不想找到所有的事件。有数以千计的工具可用于查找和替换它们。我希望有一个警告,以便下次有人查看代码时,他们会评估并修复代码。

编辑: strncmp 和 strncpy 有很多问题,我很清楚这一点。我正在做出明智的决定。这些功能在我们自己的中号库不仅仅是来自编译器的默认函数中号图书馆。

最佳答案

虽然您可以使用 #define 强制错误,但 C99 标准中没有机制(C11 中可能也没有)强制警告。

如果你使用 gcc,你可以使用

__attribute_deprecated__

将原型(prototype)标记为已弃用,例如:
int strcmp(const char *, const char *) __attribute_deprecated__;

关于c - 如果使用函数,编译器会发出警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20188549/

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