在 C++ 编译器中编译 C 程序
Compiling C program in C++ compiler
我用 C 写了一个程序,我想在这段代码中使用 C++ 库,虽然我可以用 g++ 编译 C,因为 C++ 是在 C 之上构建的。但是,我做不到那和主要错误是因为在代码的一部分中,我在主函数之前编写了一个函数来从输入文件中读取数据。这在 C 编译器中运行良好,但在 Cpp 编译器中运行不佳。
下面是我收到的一些错误消息,所以我想得到一般性的评论和在互换使用 c 和 cpp 时要考虑的要点
error : ‘get_inputs’ was not declared in this scope
error: use of parameter outside function body before ‘]’ token
以下程序在 C 中编译时带有警告,例如:'bar' 未定义;假设 extern 返回 int
void foo()
{
bar(5);
}
int bar(int x)
{
return x*2;
}
如果你想让它在 C++ 中编译,你必须在使用它之前声明 bar
:
int bar(int x); // forward declaration
void foo()
{
bar(5);
}
int bar(int x)
{
return x*2;
}
即使在 C 语言中,使用前向声明并启用所有编译器警告也是很好的做法,否则以下程序中的错误将被漏掉:
void foo()
{
bar(); // calling bar without argument....
}
int bar(int x)
{
return x*2; // ... will result in an undefined value for x here
}
我用 C 写了一个程序,我想在这段代码中使用 C++ 库,虽然我可以用 g++ 编译 C,因为 C++ 是在 C 之上构建的。但是,我做不到那和主要错误是因为在代码的一部分中,我在主函数之前编写了一个函数来从输入文件中读取数据。这在 C 编译器中运行良好,但在 Cpp 编译器中运行不佳。 下面是我收到的一些错误消息,所以我想得到一般性的评论和在互换使用 c 和 cpp 时要考虑的要点
error : ‘get_inputs’ was not declared in this scope
error: use of parameter outside function body before ‘]’ token
以下程序在 C 中编译时带有警告,例如:'bar' 未定义;假设 extern 返回 int
void foo()
{
bar(5);
}
int bar(int x)
{
return x*2;
}
如果你想让它在 C++ 中编译,你必须在使用它之前声明 bar
:
int bar(int x); // forward declaration
void foo()
{
bar(5);
}
int bar(int x)
{
return x*2;
}
即使在 C 语言中,使用前向声明并启用所有编译器警告也是很好的做法,否则以下程序中的错误将被漏掉:
void foo()
{
bar(); // calling bar without argument....
}
int bar(int x)
{
return x*2; // ... will result in an undefined value for x here
}