是否可以从记事本等外部文件中调用例程(如果需要,还可以调用cpp文件)?
e.g。 我有3个文件。 MainCode.cpp
SubCode_A.cpp< - 未包含在MainCode.cpp的标题中
SubCode_B.cpp< - 未包含在MainCode.cpp的标题中
MainCode_A.cpp
#include <iostream>
using namespace std;
int main ()
{
int choice = 0;
cin >> choice;
if (choice == 1)
{
"call routines from SubCode_A.cpp;" <- is there a possible code for this?
}
else if (choice == 2)
{
"call routines from SubCode_B.cpp;" <- is there a possible code for this?
}
return 0;
}
=================================
SubCode_A.cpp CODES
{
if (1) //i need to include if statement :)
cout >> "Hello World!!";
}
=================================
SubCode_B.cpp CODES
{
if (1) //i need to include if statement :)
cout >> "World Hello!!";
}
答案 0 :(得分:0)
将代码设为例如SubCode_A.cpp
函数,然后在主源文件中声明此函数并调用它。您当然必须使用所有源文件构建以创建最终的可执行文件。
答案 1 :(得分:0)
没有
你必须编译两个代码,
在标头中声明外部函数(例如extern void function (int);
)。
编译将包含此标头的两个文件。
然后在第3个文件中,您使用它只需包含标题。
但是当您在编辑中包含所有3个文件时,它将起作用。
答案 2 :(得分:0)
您可以使用#include语句。 Include指示编译器在#include点插入指定的文件。 所以你的代码将是
if (choice == 1)
{
#include "SubCode_A.cpp"
}
...
你不需要SubCode _?。cpp文件中的额外大括号,因为它们存在于MainCode.cpp中
当然,编译器只会在编译时编译SubCode文件中的内容。对未编译的源的任何更改都不会以可执行文件结束。
但是中间源#includes不适用于非常易读的代码。
答案 3 :(得分:0)
无法在另一个可执行文件中调用代码。一个应用程序可以通过库或DLL公开“api”(应用程序编程接口),允许您调用应用程序使用的一些代码。
在编译您的代码时,编译器需要知道您要调用的函数的“指纹”:即返回的内容以及所需的参数。
这是通过声明或“原型存根”完成的:
// subcode.h
void subCodeFunction1(); // prototype stub
void subCodeFunction3(int i, int j);
// subcode.cpp
#include <iostream>
void subCodeFunction1()
{
std::cout << "subCodeFunction1" << std::endl;
}
void subCodeFunction2()
{
std::cout << "subCodeFunction2" << std::endl;
}
void subCodeFunction3(int i, int j)
{
std::cout << "subCodeFunction1(" << i << "," << j << ")" << std::endl;
}
// main.cpp
#include "subcode.h"
int main() {
subCodeFunction1(); // ok
subCodeFunction2(); // error: not in subcode.h, comment out or add to subcode.h
subCodeFunction3(2, 5); // ok
return 0;
}