在Xcode 4.6中使用gcc 本学期我的CPS课程从C++向下转换为C,因为我的C++是附加到XCODE上的,它是一个简单快捷的调试器。但是,对于C,XCODEL让我做很多C++的东西,在C.中不允许这样做。

在Xcode 4.6中使用gcc 本学期我的CPS课程从C++向下转换为C,因为我的C++是附加到XCODE上的,它是一个简单快捷的调试器。但是,对于C,XCODEL让我做很多C++的东西,在C.中不允许这样做。,c,xcode,gcc,C,Xcode,Gcc,例如,我可以在循环中初始化和声明循环变量,这在C中是不允许的 C: inti 对于(i=0;i

例如,我可以在循环中初始化和声明循环变量,这在C中是不允许的

C:

inti
对于(i=0;i<100;i++)
{
printf(“这是一个数字:%i”,i);
}

但C++中允许使用 C++:

for(int i=0;i<100;i++)
{
printf(“这是一个数字:%i”,i);
}
<>我所有的工作都必须在实验室机器上编译(运行Linux并用GCC编译)以便计数,所以我在寻找一种方法继续使用XCODE来运行我的程序,或者用GCC(或者至少是不让我做C++的东西)。似乎xCode已经放弃了对gcc的支持。我是否可以继续使用xCode,但让它以一种“老派”的方式编译,这样它就可以捕获这样的东西

现在我一直在使用Sublimate2,只是在终端中编译。现在还可以,但在调试方面,在使用xCode这么长时间后,我对gdb产生了一种憎恨

您可以将
-std
参数用于编译器。听起来您可能想要
-std=c89
-std=gnu89

在Xcode中,在项目或目标的构建设置中,将“C语言方言”设置为所需的任何值


我不指望它能抓住一切,但它会让你更接近。

在循环中声明
I
在C中是合法的。@KurtRevis,这就是我担心的,我们必须在实验室机器上使用旧版本的C标准。不知怎么的,gcc不喜欢这样。我只需要在两者之间跳一跳,然后找出其中的区别。谢谢你的提示。除非你的实验室机器真的很古老,否则你可以用'-std=c99'(或者'-std=gnu99'来调用带有GNU扩展的c99)在它们上面的gcc。如果你不确定你的班级是否允许这样做,请与你的老师谈谈。也许他已经很满意了,或者你可以证明,现在是时候开始使用14年前的版本而不是24年前的版本了
int i
for(i = 0; i < 100; i++)
{
     printf("This is a number: %i", i);
}
for(int i = 0; i < 100; i++)
{
     printf("This is a number: %i", i);
}