gpt4 book ai didi

c++ - 如何防止 C 或 C++ 程序使用 CRT 函数?

转载 作者:太空狗 更新时间:2023-10-29 21:47:25 31 4
gpt4 key购买 nike

就我而言,我有两层,即核心层和应用层。应用层依赖于核心层。

我希望只有核心层应该使用 CRT 函数。

在应用层,如果使用了CRT函数,应该是编译不通过的。

有什么办法可以实现吗?例如,在应用层不应该直接调用free/malloc。

我想到的一种方法是#define所有CRT函数到某个错误,这样应用层就不能使用直接CRT调用(应用层包括核心层的头文件)。

最佳答案

您不需要#define CRT 中的所有函数。定义在 header 中声明的函数之一就足以导致编译失败。

此外,查看 CRT header ,其中大部分都依赖于此类结构:

    #ifndef "some unique id"
#define "some unique id"
/* header body */
#endif

如果你定义这个唯一的 id,你会有效地导致头文件不被包含,因此当试图使用在这个头文件中声明的函数时会发生编译错误。

关于c++ - 如何防止 C 或 C++ 程序使用 CRT 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13308282/

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