使用gcc编译C程序

时间:2013-05-12 03:46:58

标签: c gcc shebang

我正在关注CUNY的一个例子,我之前从未做过任何事情,所以我可能不知道自己在做什么。

考虑下面的程序。

  1. 我是否需要使用emacs编写的C代码的shebang行?
  2. 当我使用第gcc -g -o forwardadding forwardadding.c行进行编译时 我收到了消息:

    forwardadding.c:9:17: error: expected expression before ‘<’ token
    
  3. 一旦我编译代码,我可以使用gdb来调试并运行代码吗?

  4. 代码:

    #include <stdio.h>
    #include <math.h>
    
    main()
    {
        float sum, term;
        int i;
        sum = 0.0;
        for( i = 1; < 10000000; i++)
        {
            term = (float) i;
            term = term * term;
            term = 1 / term;
            sum += term;
        }
        printf("The sum is %.12f\n", sum);
    }
    

3 个答案:

答案 0 :(得分:9)

  1. 不需要shebang。您可以添加Emacs模式行注释。

  2. for循环应为:

    for (i = 1; i < 10000000; i++)
    

    您的代码缺少第二个i

  3. 是的,您可以在编译代码后使用GDB。

  4. 如果你的数字从10,000,000减少到数到10,000,000,你会得到更好的数学答案。大约i = 10000之后,额外的值不会对结果添加任何内容。

    请养成编写C99代码的习惯。这意味着你应该写:

    int main(void)
    

    需要返回类型int并建议使用void

答案 1 :(得分:6)

您需要在for循环中放置一个变量来表示完整的表达式(可能是第9行......)

for( i = 1; < 10000000; i++)

更改为

for( i = 1; i < 10000000; i++)

答案 2 :(得分:1)

您错过了i。正确的是,Jonathan Leffler建议并保存您的文件。打开终端,只需使用它来编译代码gcc your_file_name.c,然后编译代码,运行刚刚编译好的./a.out类型的代码,程序运行并显示输出。