如果有人在代码中使用特定功能(比如memcpy),我怎么能确定它会返回错误。
我们已从代码中删除了所有memcpy实例,其中包含一些内部设计的函数,
我想确定的是,无论何时有人使用memcpy,编译器都会抛出错误信息。
答案 0 :(得分:5)
您可以使用预处理器,例如
#define memcpy(a, b, c) do_not_use_memcpy
将其放入包含在所有源文件中的头文件中,预处理器将使用(未定义)符号memcpy
替换对do_not_use_memcpy
的所有调用。由于该符号未定义,因此您将收到编译器错误。
答案 1 :(得分:4)
为避免破坏库,请使用deprecated
属性:
void * my_new_memcpy ( void * destination, const void * source, size_t num )
{
return memcpy(destination, source, num);
} __attribute__((deprecated));
// Make sure this is used *after* declaring the function
#define memcpy my_new_memcpy