给定一个C++程序,任务是以Makefile的形式破坏整个程序。
它基本上用于为每个类/函数及其功能创建.cpp文件和.h文件,然后通过C++中可用的Makefile命令将它们链接在一起。
好处:
- 它使代码更简洁明了,易于阅读和调试。
- 更改功能或类时,无需每次都编译整个程序。 Makefile将仅自动编译发生更改的那些文件。
- 通常,在长代码或项目中,Makefile被广泛使用,以便以更系统和有效的方式呈现项目。
示例:创建一个程序以查找数字的阶乘和乘法并打印。
传统方式
// Program to calculate factorial and
// multiplication of two numbers.
#include
using namespace std;
// Function to find factorial
int factorial(int n)
{
if (n == 1)
return 1;
// Recursive Function to find
// factorial
return n * factorial(n - 1);
}
// Function to multiply two numbers
int multiply(int a, int b)
{
return a * b;
}
// Function to print
void print()
{
cout << "makefile" << endl;
}
// Driver code
int main()
{
int a = 1;
int b = 2;
cout << multiply(a, b) << endl;
int fact = 5;
cout << factorial(5) << endl;
print();
return 0;
}
输出:
2
120
makefile
使用Makefile运行以上程序:
- 档案名称:main.cpp
#include
// Note function.h which has all functions // definations has been included #include "function.h" using namespace std; // Main program int main() { int num1 = 1; int num2 = 2; cout << multiply(num1, num2) << endl; int num3 = 5; cout << factorial(num3) << endl; print(); } - 档案名称:print.cpp
#include
// Definition of print function is // present in function.h file #include "function.h" using namespace std; void print() { cout < "makefile" << endl; } - 文件名:factorial.cpp
#include
// Definition of factorial function // is present in function.h file #include "function.h" using namespace std; // Recursive factorial program int factorial(int n) { if (n == 1) return 1; return n * factorial(n - 1); } - 文件名:multiple.cpp
#include
// Definition of multiply function // is present in function.h file #include "function.h" using namespace std; int multiply(int a, int b) { return a * b; } - 文件名:functions.h
#ifndef FUNCTIONS_H #define FUNCTIONS_H void print(); int factorial(int); int multiply(int, int); #endif
上面程序的编译和运行命令:
Open Terminal and type commands:
g++ -c main.cpp
g++ -c print.cpp
g++ -c factorial.cpp
g++ -c multiply.cpp
g++ -o main main.o print.o factorial.o multiply.o
./main
Note: g++ -c filename.cpp is used to create object file.
想要从精选的最佳视频中学习并解决问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。