这是我写的第一个多文件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> 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_2a.h 头文件,用来声明源代码文件中的函数并保存关闭,
最后重新打开主程序pe12_2b.c文件,先进行编译,这时软件会报错,没关系,我们接着再向其中添加项目文件,具体操作流程为在菜单栏里 Project->Add to project->Files,
将这两个文件添加完之后,再对pe12_2b.c文件重新编译链接,运行测试,
水平有限,欢迎大家指正交流!