包含 xCode 中未显示的错误

问题描述 投票:0回答:1

最近我开始解决在线评委的问题,例如UVA Online Judge。我尝试用 C++ 解决这些问题,并使用 xCode IDE 编写代码。

但是,当我在代码中使用一些 C 函数(例如 printf 或 scanf)时,xCode 不会抱怨并且一切运行正常,但是,当我将代码提交给法官时,它正在使用 GNU C++ 4.5.3 进行编译,并且它给出了编译错误。问题是我必须包含 cstdio 标头。

xCode 没有对这个小错误给出任何警告,这有点烦人。有什么办法可以打开这些错误吗?那么当我使用需要标头的函数时,它会给出警告或错误?

谢谢!

c++ xcode gnu
1个回答
0
投票

问题是由

LLVM
编译器的头文件集引起的。
<iostream>
包含
<ios>
,其中包含
<cstdio>
,这将导致
printf
的声明出现。

如果您使用标志

-std=gnu++0x
编译 cpp 代码,则在 Linux 上的
g++
下它会成功编译。

我认为没有一个选项会在 MacOS X 上触发相同的错误,除非您安装了 gcc 的完整副本,包括 gcc 标头,因为该标头隐式包含在

<ios>
LLVM

标头中

在这种情况下,您应该执行

#include <cstdio>
以确保函数已声明,并且这也适用于 gnu gcc 编译器。

© www.soinside.com 2019 - 2024. All rights reserved.