gpt4 book ai didi

c - 如何让 XCode 6、LLVM 编译器检查 c 函数参数

转载 作者:太空宇宙 更新时间:2023-11-04 04:39:28 24 4
gpt4 key购买 nike

有谁知道如何让 Xcode 6 中的 Apple LLVM 编译器在函数参数与原型(prototype)不匹配时发出警告?使用默认设置,以下不会生成警告:

void test(int *x)
{
printf("%d",*x);
}

void caller()
{
int x = 5;
test(x);
}

我在设置中尝试了“需要函数原型(prototype)”,但是当函数没有与声明不同的原型(prototype)时,这只是提示。无论我是否有单独的原型(prototype),都会出现上述问题。它似乎也不关心参数的数量是否与声明或原型(prototype)匹配。另外,我尝试了 -Wstrict-prototypes 但没有效果。这几乎像是一个错误。

更新:我刚刚在另一台 Mac 上使用不同的 Xcode 项目尝试了此操作,我收到了预期的警告。因此,其他系统上出现了问题。我会把它归咎于项目,但我在 2 个不相关的项目中看到了相同的行为。这两个项目都是几年前创建的,并且已经通过 Xcode 的各种迭代自动升级,但对于有效的项目来说确实如此。有问题的系统正在运行 Yosemite,而没有问题的系统正在运行 Mavericks。相同的 Xcode 6.1.1。有问题的系统现在不在身边,否则我会比较 2 个全新的相同项目的行为。

最佳答案

好吧,这只是配置错误的项目。 “可疑的隐式转换”设置为否,这具有设置 Wno-int-conversion 的效果,它允许 int <-> 指针转换而不发出警告。我以为我看到了一些其他行为,表明它根本没有检查声明/原型(prototype),所以我正在寻找与此相关的设置。查看编译器命令行指出了问题。

关于c - 如何让 XCode 6、LLVM 编译器检查 c 函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27895502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com