调用memcpy报告错误

时间:2013-07-11 11:02:19

标签: c

如果有人在代码中使用特定功能(比如memcpy),我怎么能确定它会返回错误。

我们已从代码中删除了所有memcpy实例,其中包含一些内部设计的函数,

我想确定的是,无论何时有人使用memcpy,编译器都会抛出错误信息。

2 个答案:

答案 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