正如标题所说,是有办法迫使GCC警告我,当我做这样的事情:GCC警告到另一个指针类型
void do_something(int* ptr)
{
// do something
}
int main()
{
int a = 123;
void* b = &a;
// WARN HERE:
do_something(b);
}
正如标题所说,是有办法迫使GCC警告我,当我做这样的事情:GCC警告到另一个指针类型
void do_something(int* ptr)
{
// do something
}
int main()
{
int a = 123;
void* b = &a;
// WARN HERE:
do_something(b);
}
使用-Wc++-compat
。从GCC manual:
-WC++ - compat的(C和仅目的-C)
发出警告ISO C构造一个 是ISO C和ISO C的公共子集之外++,例如请求 用于从void *到一个指向非void类型的指针的隐式转换。
两个原因,答案是大概没有:
这将是在其他情况下,如烦
int *array = malloc(5 * sizeof(*array))
。
我很感谢您的关注,但这并不能真正帮助我解决我的问题 –
并且没有关于'void * b =&a;'类型信息丢失的警告? – Nobody
我编译了那个片段,然后用我通常的警告标志('-pedantic -Wall -Wshadow -Wpointer-arith -Wcast-qual -Wextra'),并没有任何警告。然而,这并不是我特别担心的部分。 –