文件包含---多个源程序的编译和链接

来源:互联网 发布:传统颜色名称 知乎 编辑:程序博客网 时间:2024/05/24 06:31

三个源程序文件:main.cpp, max.cpp, add.cpp, main函数需要调用add函数和max函数。


/*   max.cpp   */

int max(int x, int y)
{
return x>y?x:y;
}


/*   add.cpp   */

int add(int x, int y)
{
return x+y;
}


情况一:如果三个文件main.cpp、 max.cpp和add.cpp在同一个文件夹里面,则main.cpp可以写成以下形式:

#include <stdio.h>
#
include <stdlib.h>

#include "max.cpp"
#include "add.cpp"


int main(int argc, char *argv[]) 
{
 extern int max(int x, int y); //声明max是外部函数
 extern int add(int x, int y);
 int a=3, b=6;
 int c, d;
 c=max(a, b);
 d=add(a, b);              
 printf("c=%d  d=%d\n", c, d);
 return 0;     
}

情况二:如果三个文件main.cpp、 max.cpp和add.cpp不在同一个文件夹里面,则需要在文件main.cpp的开头写清楚max函数和add函数的各自具体位置(也即各自的具体路径)。假设main.cpp放在桌面上一个名为C7的文件夹,而 max.cpp和add.cpp放在C7的一个名为的子文件夹functions中,则main函数可以写成以下形式:

#include <stdio.h>
#
include <stdlib.h>

#include "C:\\Users\\Administrator\\Desktop\\C7\\functions\\max.cpp"
#include "C:\\Users\\Administrator\\Desktop\\C7\\functions\\add.cpp"


int main(int argc, char *argv[]) 
{
 extern int max(int x, int y);
 extern int add(int x, int y);
 int a=3, b=6;
 int c, d;
 c=max(a, b);
 d=add(a, b);              
 printf("c=%d  d=%d\n", c, d);
 return 0;     
}

0 0