正如标题所说,当我做这样的事情时,有没有办法迫使GCC警告我:
void do_something(int* ptr)
{
// do something
}
int main()
{
int a = 123;
void* b = &a;
// WARN HERE:
do_something(b);
}
答案 0 :(得分:7)
使用-Wc++-compat
。来自GCC manual:
-Wc ++ - compat(仅限C和Objective-C)
警告ISO C构造 在ISO C和ISO C ++的公共子集之外,例如,请求 用于从void *隐式转换为指向非void类型的指针。
答案 1 :(得分:1)
答案可能不:
的两个原因在其他情况下会很烦人,例如
int *array = malloc(5 * sizeof(*array))
。