标签: compiler-construction

试图编译一个C程序

我做了一个简单的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)

谢谢!

c compiler-construction gcc program-entry-point for-loop

-3
推荐指数
1
解决办法
211
查看次数

不同版本的C/C++

我知道我的计算机上有Java 1.7和Python 2.7.如何查看我的C和C++版本?另外,我如何检查我正在使用的C/C++编译器?我正在运行OS X.

另外,不同版本的C/C++和C/C++的不同版本的编译器之间的关系是什么?每个编译器是否对应不同版本的C/C++?例如,gcc4-3,比如说只编译C++ 2014吗?

c c++ compiler-construction

-3
推荐指数
1
解决办法
1609
查看次数

如何在G ++中从.o文件创建exe/tar.bz2?

有没有办法在G ++中使用.o文件制作exe或tar.bz2 fiel?我必须使用nasm或任何其他程序来制作ax和tar.bz2,或者它可以在G ++中使用吗?

c++ compiler-construction exe g++ tar

-4
推荐指数
1
解决办法
419
查看次数

C语言是否支持多线程?

由于C语言不提供任何面向对象的概念,我想知道它是否也不支持多线程?我在网上搜索过 - 有人能给我答案吗?

c compiler-construction multithreading

-4
推荐指数
1
解决办法
1563
查看次数

代码或我的IDE/comp中的问题被窃听?

我尝试刷新我今天用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)

c compiler-construction variables debugging

-4
推荐指数
1
解决办法
138
查看次数

代码在Linux g ++中没有按预期工作?

在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)

c++ linux compiler-construction output

-4
推荐指数
1
解决办法
170
查看次数

关于C中的一段代码的争论

我的朋友和我正在争论这段小代码:

#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未初始化的,但我的朋友们认为它会.你怎么看?

c compiler-construction compiler-errors

-4
推荐指数
1
解决办法
98
查看次数

为什么几乎所有的C++标准库都不可移植(包括clang,gcc和vc ++)?

我没能用VC++编译gcc的C++标准库,反之亦然.

为什么几乎所有的C++标准库都不可移植(包括clang,gcc和vc ++)?

我也尝试过STLport,但它太旧了,无法支持C++ 11.

我正在为嵌入式系统编写自己的mini-STL,由于其不可移植性,我无法使用编译器提供的STL.所以,我必须关心这一点.

是否有可移植C++标准库的实现?

c++ compiler-construction standards-compliance c++-standard-library c++11

-4
推荐指数
1
解决办法
300
查看次数

与 gcc 中的 #define 相比,使用 typedef 对程序二进制文件有何影响?

#define不会以任何方式影响二进制文件或目标文件,因为它是一个基本上复制粘贴内容的预处理器命令。

typedef由编译器处理,所以我想知道它可能会影响最终的二进制/对象文件,如果使用它,与#define.

c compiler-construction

-4
推荐指数
1
解决办法
81
查看次数

愚弄c ++编译器.将int而不是cont int传递给函数

我如何将int传递给期望const int函数.

或者有没有办法修改cont int值?

编辑:我之前应该提到过,我正在使用ccs c编译器来编程pic微控制器.fprintf函数将常量流作为其第一个参数.它只接受一个常量int并抛出一个编译错误,否则"Stream必须是有效范围内的常量.".

编辑2:Stream是一个常量字节.

c++ compiler-construction int

-5
推荐指数
1
解决办法
250
查看次数