c++ - 在不修改源代码的情况下将库函数标记为已弃用/不可用

标签 c++ c gcc

我有一个大型代码库,其中使用了一些不安全的函数,例如 gmtimestrtok。我不想尝试搜索代码库并批量替换这些代码,而是想让编译器在看到它们时发出警告或错误(以向维护开发人员突出显示问题)。 GCC 可以吗?

我已经知道 __attribute__((deprecated)),但我无法使用它,因为我无法控制声明这些函数的头文件。

最佳答案

创建自定义 header deprecated.h。在那里,创建您自己的包装函数,deprecated_strtok() 等等,它们只会调用 strtok。用 __attribute__((deprecated)) 标记那些。在这些定义下方,#define strtok deprecated_strtok。最后,使用-include deprecated.h

关于c++ - 在不修改源代码的情况下将库函数标记为已弃用/不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1601261/

相关文章:

c++ - 我必须改变什么才能从数组中读取像素值?

c - 在 rhel 6.1 上安装 gcc

c++ - 仅包含<opencv2/opencv.hpp>会导致链接错误

c++ - 双向链接的线程安全分离

c - 在使用#ifndef 的#undef 之后#define 没有按预期工作

c - 在内核级函数上使用 LD_PRELOAD

c - 生成C项目的callview树

c++ - Visual Studio C++ - std::map 插入失败

c++ - 尽管文件指针正确,但 fclose() 期间出现段错误

c++ - 生成没有 stub 的 WSDL 请求/响应