我有一个使用许多不安全功能的大型代码库,例如gmtimestrtok。与其尝试遍历代码库并替换掉所有这些批发内容,不如让编译器在看到它们时发出警告或错误(向维护开发人员强调问题)。使用GCC可以吗?

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

最佳答案

创建一个自定义 header deprecated.h。在其中,创建您自己的包装函数,即deprecated_strtok()等仅调用strtok的函数。用__attribute__((deprecated))标记那些。在这些定义之下,#define strtok deprecated_strtok。最后,使用-include deprecated.h

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

10-11 16:24