在此之前, 我们都习惯于将一个程序所需的全部函数都放到一个.cpp文件中, 这是因为现阶段我们编写的程序往往只需要实现一个或几个简单的功能, 将这一个或几个函数放到一个.cpp文件中也不显得杂乱无章. 假设一个项目中一共有1000个函数, 这时如果还将所有函数放到一个文件中, 日后的维护会相当困难, 而且程序的可读性也很差. 更为重要的是, 这无法体现一个团队的分工合作精神.
假设现在需要开发一个(简单的)项目, 需要实现1+2+...+n和1*2*...*n的功能, 而且这个项目的开发需要三名程序员来分别实现. A程序员负责编写Sum.cpp文件(求和), B程序员需要编写Fact.cpp文件(求阶乘), C程序员负责主函数所在文件Test.cpp的编写. 当三名程序员分别将各自的任务准确无误地完成后, 在Test.cpp中引用Sum.cpp文件和Fact.cpp文件, 编译链接后就可正确运行了.
问题: #include"......"和#include<......>这两条语句在功能上有何不同?
#include"......": 先在当前目录下寻找文件......, 如果没有找到, 再去系统目录中寻找.
#include<......>: 只在系统目录下寻找文件...... .
[注]在Test.cpp中将 #include"Sum.cpp" 改为 #include<Sum.cpp>, 程序在编译时会报错.
[Test.cpp]
#include<stdio.h>
/* Sum()函数的定义在文件"Sum.cpp"内 */
#include"Sum.cpp"
/* Fact()函数的定义在文件"Fact.cpp"内 */
#include"Fact.cpp"
/* 函数原型可以不写 */
long Sum(short n);
long Fact(short n);
int main()
{
short n;
printf("Please input n(n >= 1): ");
/* 输入容错机制 */
while(scanf("%hd", &n) != 1)
{
while(getchar() != '\n') ;
printf("Please input n(): ");
}
/* 输入合法性判断 */
if(n >= 1)
{
printf("Sum = %ld\n", Sum(n));
printf("Fact = %ld\n", Fact(n));
}
else
{
/* n <1 */
printf("data error!\n");
}
/* */
return 0;
}
[Sum.cpp]
/* 求和函数, 计算1+2+...+n */
long Sum(short n)
{
/* 计数变量 */
short i = 1;
/* 记录求和值 */
long S = 0;
while(i <= n)
{
/* 累加 */
S += i;
i ++;
}
return S;
}
[Fact.cpp]
/* 求阶乘函数, 计算 n! */
long Fact(short n)
{
if(n == 0)
{
return 1;
}
/* 计数变量 */
short i = 1;
/* 累乘值记录 */
long result = 1;
while(i <= n)
{
result *= i;
i ++;
}
return result;
}
[运行结果]