这是我写的第一个多文件C程序,程序很简单,利用的是VC++6.0,主要是了解了如何编译及使用多文件,以及多文件编译过程中 *.h 与 *.c 文件的一些区别,下面是具体操作和代码,希望与大家分享并且能够给一些刚学习的同学提供参考!
该程序让用户选择一个模式(公制的或美制的),公制是以升每百公里来衡量,美制是以英里每加仑来衡量,然后收集数据来计算油耗。
程序分为主程序文件 pe12_2b.c,源代码文件 pe12_2a.c,头文件 p212_2a.h。
首先新建源代码文件,编写pe12_2b.c并保存关闭,
主程序包括了pe12_2a.h头文件,函数 set_mode()、get_info()、show_info() 在另一个源代码文件pe12_2a.c定义,然后在pe12_2a.h头文件中声明这些函数。
接着编写pe12_2a.c并保存关闭,
#include<stdio.h>再来创建pe12_2a.h 头文件,用来声明源代码文件中的函数并保存关闭,
static int mode;
static float kilm;
static float fuel;
void set_mode(int m)
{
mode=m;
}
void get_info()
{
if(mode==0)
{
printf("Enter distance traveled in kilometers: ");
scanf("%f",&kilm);
printf("Enter fuel consumed in liters: ");
scanf("%f",&fuel);
}
else if(mode==1)
{
printf("Enter distance traveled in miles: ");
scanf("%f",&kilm);
printf("Enter fuel consumed in gallons: ");
scanf("%f",&fuel);
}
else if(mode>1)
{ printf("Invalid mode specified.Mode 1(US) used.\n");
printf("Enter distance traveled in kilometers: ");
scanf("%f",&kilm);
printf("Enter fuel consumed in liters: ");
scanf("%f",&fuel);
}
else
{ printf("Invalid mode specified.Mode 0(metric) used.\n");
printf("Enter distance traveled in kilometers: ");
scanf("%f",&kilm);
printf("Enter fuel consumed in liters: ");
scanf("%f",&fuel);
}
}
void show_info()
{
if(mode==0)
{
printf("Fuel consumption is %4.2f liters 100 kilometers.\n",fuel/(kilm/100.00));
}
else if(mode==1)
{
printf("Fuel consumption is %4.2f miles per gallon.\n",kilm/fuel);
}
else if(mode>1)
{
printf("Fuel consumption is %4.2f miles per gallon.\n",kilm/fuel);
}
else
{
printf("Fuel consumption is %4.2f liters 100 kilometers.\n",fuel/(kilm/100.00));
}
}
最后重新打开主程序pe12_2b.c文件,先进行编译,这时软件会报错,没关系,我们接着再向其中添加项目文件,具体操作流程为在菜单栏里 Project->Add to project->Files,
将这两个文件添加完之后,再对pe12_2b.c文件重新编译链接,运行测试,
水平有限,欢迎大家指正交流!