C语言多文件编译

时间:2021-11-12 09:21:59

这是我写的第一个多文件C程序,程序很简单,利用的是VC++6.0,主要是了解了如何编译及使用多文件,以及多文件编译过程中 *.h 与 *.c 文件的一些区别,下面是具体操作和代码,希望与大家分享并且能够给一些刚学习的同学提供参考!

该程序让用户选择一个模式(公制的或美制的),公制是以升每百公里来衡量,美制是以英里每加仑来衡量,然后收集数据来计算油耗。

程序分为主程序文件 pe12_2b.c,源代码文件 pe12_2a.c,头文件 p212_2a.h。

首先新建源代码文件,编写pe12_2b.c并保存关闭,

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 头文件,用来声明源代码文件中的函数并保存关闭, C语言多文件编译C语言多文件编译

最后重新打开主程序pe12_2b.c文件,先进行编译,这时软件会报错,没关系,我们接着再向其中添加项目文件,具体操作流程为在菜单栏里 Project->Add to project->Files,

C语言多文件编译

将这两个文件添加完之后,再对pe12_2b.c文件重新编译链接,运行测试,C语言多文件编译

水平有限,欢迎大家指正交流!