IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C primer plus第九章 多文件编译初体验 -> 正文阅读

[C++知识库]C primer plus第九章 多文件编译初体验

在接触了C一段时间后,我开始接触C++,C++更关注的是结构化,所以也第一次有了多文件编译的概念,而这次在重温C的过程中,我也第一次尝试和使用了多文件编译。
在C primer plus 关于这个介绍中,我自己的心得为以下三点:

  1. 函数声明与常量的定义言放在同一个头文件中,后缀名是.h,直接修改后缀名;
  2. 函数的原型(在以后更多是常用函数的原型)要放在一个源代码文件中,后缀名是.c
  3. 主程序放在一个文件中;

在我看来这样的设置很合适,结构分明,条理清晰;
下面是书上的代码实现:

头文件:

 #define QUIT 5
 #define HOTEL1 180.0
 #define HOTEL2 225.0
 #define HOTEL3 255.0
 #define HOTEL4 355.0
 #define DISCOUNT 0.95
 #define STARS "****************"
 
 int menu(void);
 
 int getnights(void);
 
 void showprice(double rate,int nights);

函数源代码:

#include<stdio.h>
#include"hotel.h"
int menu(void){
	int code,status;
	
	printf("\n%s%s\n",STARS,STARS);
	printf("Enter the number of the hotel\n");
	printf("1) the first    2) the second\n"
	       "3) the third    4) the forth\n");
	printf("5) to quit");
	printf("\n%s%s\n",STARS,STARS);
	while((status=scanf("%d",&code))!=1||code<1&&code>5){
		if(status!=1)
		scanf("%*s");//处理非整数输入   原来的那个输入其实是在缓存区 
		printf("please enter an integer from 1 to 5.\n");
	}
	return code;
} 

int getnights(void) {
	int nights;
	
	printf("how many nights are needed?\n");
	while(scanf("%d",&nights)!=1){
		scanf("%*s");
		printf("enter an integer,please.\n");
	}
	return nights;
}

void showprice(double rate,int nights){
	int n;
	double total=0.0;
	double factor=1.0;
	
	for(n=1;n<=nights;n++,factor*=DISCOUNT)
	total+=rate*factor;
	printf("the total cost is:%.2lf\n",total);
}

主程序

#include<stdio.h>
#include"hotel.h"

int main(){
	int nights;
	double hotel_rate;
	int code;
	
	while((code=menu())!=QUIT){
		switch(code){
			case 1:hotel_rate=HOTEL1;
			break;
			case 2:hotel_rate=HOTEL2;
			break;
			case 3:hotel_rate=HOTEL3;
			break;
			case 4:hotel_rate=HOTEL4;
			break;
			default:hotel_rate=0.0;
			printf("Oops!\n");
			break;
		}
		nights=getnights();
		showprice(hotel_rate,nights);
	}
	printf("thank you and goodbye.");
	return 0;
} 

注意:在.c的文件中,要包含头文件,头文件才可以正常在其他文件中使用
具体格式

#include "头文件名称"

下面想说的是如何在DEV—C++中实现多文件编译。
首先先新建一个项目,勾选空项目,选择C语言
在这里插入图片描述
然后在项目中添加相应需要的源代码文件
在这里插入图片描述

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-24 15:22:34  更:2021-08-24 15:23:52 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 6:04:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计