在下面的一个例子中,我想知道func带有错误类型参数的调用 - vptr应该用int指针调用.
void func(int * ptr){
}
int main(){
void * vptr;
func(vptr);
}
Run Code Online (Sandbox Code Playgroud)
即使有墙式选项,海湾合作委员会也不会警告这类警告.在gcc中还有其他任何选项,或其他编程技巧来找出那些不良的代码方式.除此之外,在cpp怎么样?
编辑:VTT回答这在C中有效,但在C++中无效,没有其他类似的演员关键字static_cast(详见其他帖子).
在C中,它是一个有效的隐式转换.在C++中,这种转换至少需要static_cast并且会导致编译时错误(或者甚至是两次static_cast以避免潜在的严格别名规则违规).你应该找出你实际使用的语言.