sprintf是平台提供的API。我想在使用时过滤某些格式。我的想法是:
#include <stdio.h>
int my_sprintf(...)
{
my_filter_function(...);
return ::sprintf(...);
}
#define sprintf my_sprintf
然后将这些代码放入pch中。
但我仍然担心它无法涵盖所有用法,有些用法在预构建库中,并不是每个项目都有 pch。你还有什么别的想法吗?
谢谢。它在 Windows 上。
最佳答案
您无法“覆盖”内置函数。此外,使用宏来替换其名称会导致程序出现未定义的行为。
所以,甚至不要尝试改变标准库的行为。真的,疯狂就是这样。
只需从您自己的代码中调用 my_sprintf
即可让平台执行其一贯执行的操作。
关于c++ - 如何在每次调用 sprintf 之前调用 my_function ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37111885/