Dev C++编译C源文件

3

如何使用Dev C++编译C源文件。我以为它会自动完成,但出现了多个错误,我认为这是因为你必须进行更改才能编译C文件。

示例测试代码:

 #include <stdio.h>



main ()        
{ int i,j;
double x,x_plus_one();
char ch;

i = 0;
x = 0;

printf (" %f", x_plus_one(x));
printf (" %f", x);

j = resultof (i);

printf (" %d",j);
}


double x_plus_one(x)          

double x;

{
  x = x + 1;
  return (x);
}


resultof (j)             

int j;

{
   return (2*j + 3);       
}

1
什么错误?文件是否有 .c 扩展名? - anon
它只是给出基本错误,比如参数过多,基本C语法错误。 - TStamper
3个回答

4

这是ANSI之前的代码。我不确定gcc编译器是否支持它,而且无论如何使用它都是不好的做法。将您的函数更改为:

double x_plus_one( double x) {
  x = x + 1;
  return (x);     
}

您需要将其声明为:

double x_plus_one( double x);

你也可以尝试使用-traditional标志进行编译,但我没有测试过。


但我会检查编译器选项中的所有 ANSI 支持。 - TStamper
我想我假设它已经处理了,但我想并没有。 - TStamper
同样的情况也发生在其他函数中,我猜那种旧的方式不会像你说的那样起作用了。 - TStamper

1
将main函数改为int main(),并按照Neil指出的进行修改。

不需要这个,因为在C语言中默认情况下会假定为int类型。 - TStamper

0

我觉得你是想写这个:

#include <stdio.h>

double x_plus_one(double x);
int resultof(int j);


main()        
{ int i,j;
double x;//,x_plus_one;
char ch;

 i = 0;
 x = 0;

printf (" %f", x_plus_one(x));
printf (" %f", x);

j = resultof (i);

printf (" %d",j);
}


double x_plus_one(double x)

//double x;

{
  x = x + 1;
  return (x);
}


int resultof (int j)             

//int j;

{
   return (2*j + 3);       
}

将文件保存为main.cpp并进行编译

g++.exe -D__DEBUG__ -c main.cpp -o main.o -I"C:/Program Files/CodeBlocks/MinGW/include" -g3

g++.exe -D__DEBUG__ main.o -o Project1.exe -L"C:/Program Files/CodeBlocks/MinGW/lib" -static-libgcc -mwindows -g3


Compilation results...
--------
- Errors: 0
- Warnings: 0
- Output Filename: F:\My Folder\C++ projects\test01\Project1.exe
- Output Size: 38.990234375 KiB
- Compilation Time: 1.92s

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接