GCC 关于将 void* 隐式转换为另一个指针类型的警告
正如标题所说,当我做这样的事情时,有没有办法强制 GCC 警告我:
void do_something(int* ptr)
{
// do something
}
int main()
{
int a = 123;
void* b = &a;
// WARN HERE:
do_something(b);
}
As the title says, is there a way to force GCC to warn me when I do something like this:
void do_something(int* ptr)
{
// do something
}
int main()
{
int a = 123;
void* b = &a;
// WARN HERE:
do_something(b);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用
-Wc++-compat
。来自 GCC 手册:Use
-Wc++-compat
. From the GCC manual:答案可能是否的两个原因:
在其他情况下会非常烦人,例如
int *array = malloc(5 * sizeof(*array))
。Two reasons why the answer is probably no:
It would be pretty annoying in other contexts, e.g.
int *array = malloc(5 * sizeof(*array))
.