我做了一个简单的C程序,我尝试使用gcc编译器编译它.但是当我执行gcc test.c -o test它时会抛出一些错误:
test.c:1:19: error: cstdlib: No such file or directory
test.c:2:20: error: iostream: No such file or directory
test.c: In function ‘main’:
test.c:8: error: ‘for’ loop initial declaration used outside C99 mode
Run Code Online (Sandbox Code Playgroud)
我的C程序非常简单,所以我认为问题不在代码中:
#include <cstdlib>
#include <iostream>
int main(int args, char **argv){
int result[500];
for (int i = 0; i < sizeof(result); ++i){
result[i] = 1;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我知道我的计算机上有Java 1.7和Python 2.7.如何查看我的C和C++版本?另外,我如何检查我正在使用的C/C++编译器?我正在运行OS X.
另外,不同版本的C/C++和C/C++的不同版本的编译器之间的关系是什么?每个编译器是否对应不同版本的C/C++?例如,gcc4-3,比如说只编译C++ 2014吗?
有没有办法在G ++中使用.o文件制作exe或tar.bz2 fiel?我必须使用nasm或任何其他程序来制作ax和tar.bz2,或者它可以在G ++中使用吗?
由于C语言不提供任何面向对象的概念,我想知道它是否也不支持多线程?我在网上搜索过 - 有人能给我答案吗?
我尝试刷新我今天用C语言提供的一些有限的知识,并且我在非常简单的代码上遇到了一些问题,我无法定义它们的本质....
或者我做了一个非常愚蠢的错误或者有些事情被窃听......
我使用了codeblocks v12.11 IDE并将其设置为C中的程序项目(这是下载二进制文件的链接:http://www.codeblocks.org/downloads/binaries)我使用了它的~90MB版本附带GCC编译器....
我在windows xp和windows 7机器上使用了这个IDE(和dev-C++ http://www.bloodshed.net/download.html-使用不同的编译器)...
两个代码(单独构建和编译不起作用)
第一个代码是一个非常简单的代码,它只是将两个值相加并将它们赋予一个"a"变量......
这里是:
#include <stdio.h>
int main()
{
int a,b,c,f;
b=10;
scanf("%d",&c);
a=b+c;
printf("%40s, %d",a);
return(0);
}
Run Code Online (Sandbox Code Playgroud)
因为它在上面它不能全部工作!(我的目的是在lineoutput的右边显示var"a"40个空格的值)它返回一个空消息或者窗口弹出一个致命的错误窗口...(取决于我的电脑昨天的情绪只有今天控制台返回了一条空消息,它决定告诉windows控制台窗口没有响应...)
如果我编辑这样的代码:
int main()
{
int a,b,c,f;
b=10;
scanf("%d",&c);
a=b+c;
printf("%40s");
printf("%d",a);
return(0);
}
Run Code Online (Sandbox Code Playgroud)
它有效,但在显示ascII字符的任何intreusult前面..像这样:

(奇怪的是,当我输入数字7时,它不显示一个字符,而是我的电脑发出哔哔声......如果我输入一个非数字字符,它会像这样无休止地循环:

如果我将变量的类型更改为FLOAT一切正常..但是你猜对了结果不是整数....

有趣的是,如果所有内容都转向FLOAT,但是在scanf属性上,输入设置为int [scanf("%d",&c);]程序仍然可以工作并将结果显示为浮点数但是再次使用ascii字符他们......
另一个奇怪的事情是,当我输入像99999这样的大数字时,它会显示多个ascii字符,我希望它只返回没有ascii字符的结果,因为ascii字符代码是1到255之类的东西......
所以
问题A:是我的编译器还是IDE错误(是全新安装)?
问题B:如果我该怎么办?重新安装吗?一样的东西
发生...
问题C:如果它不是软件问题(IDE/COMP等)那么为什么会出现那些ascii字符?
PS要将所有结果一起投影并采用上面的打印屏幕框架,我使用了"while"循环它不会改变任何相同的结果,当我构建和编译代码而没有while循环时...但是要确保我粘贴使用"while"命令修改代码,以便在一个控制台中显示所有结果,以便我可以对它们进行打印.
int main()
{
int a,b,c,f;
b=10;
while(b=10){
scanf("%d",&c);
a=b+c;
printf("%40s");
printf("%d",a);
}
return(0);
}
Run Code Online (Sandbox Code Playgroud) 在linux g ++编译器中,不打印第三个数字,并且不打印"到达".但是我预计将会打印出"达到",之后它会进入无限循环.它使用Codeblocks在Windows上按预期执行
#include <iostream>
int main()
{
int a;
for (int i = 0; i < 3; i++) {
std::cin >> a;
std::cout << a;
}
std::cout << "reached";
while (1) {}
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我的朋友和我正在争论这段小代码:
#include <stdio.h>
#include <stdio.h>
int foo (int k)
{
int i, n;
for (i = i ? 0 : i, n ^= n; i < sizeof(k) * 8;)
n += k >> i++ & ~-2;
return n;
}
Run Code Online (Sandbox Code Playgroud)
我怀疑它不会被编译,因为它i是未初始化的,但我的朋友们认为它会.你怎么看?
我没能用VC++编译gcc的C++标准库,反之亦然.
为什么几乎所有的C++标准库都不可移植(包括clang,gcc和vc ++)?
我也尝试过STLport,但它太旧了,无法支持C++ 11.
我正在为嵌入式系统编写自己的mini-STL,由于其不可移植性,我无法使用编译器提供的STL.所以,我必须关心这一点.
是否有可移植C++标准库的实现?
c++ compiler-construction standards-compliance c++-standard-library c++11
#define不会以任何方式影响二进制文件或目标文件,因为它是一个基本上复制粘贴内容的预处理器命令。
typedef由编译器处理,所以我想知道它可能会影响最终的二进制/对象文件,如果使用它,与#define.
我如何将int传递给期望const int的函数.
或者有没有办法修改cont int值?
编辑:我之前应该提到过,我正在使用ccs c编译器来编程pic微控制器.fprintf函数将常量流作为其第一个参数.它只接受一个常量int并抛出一个编译错误,否则"Stream必须是有效范围内的常量.".
编辑2:Stream是一个常量字节.