正如標題所說,是有辦法迫使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'),並沒有任何警告。然而,這並不是我特別擔心的部分。 –