我的编程空间,编程开发者的网络收藏夹
学习永远不晚

C语言多文件编程问题解析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

C语言多文件编程问题解析

1 为什么要使用多文件编程

在大型的综合项目中,是由很多具有不同的功能的代码构成,不可能将所有的代码都写到一个文件中,

而是采用多文件的方式对代码进行管理,将具有不同功能的代码写到不同的文件中。 比如:led灯的驱动代码写到led.c文件,beep驱动的代码写到beep.c中,key驱动代码写到key.c中…

2 多文件编程的使用方法

源文件:指.c文件,主要存放的是头文件的包含,变量定义,函数的定义

头文件:指.h文件,主要存放的是宏定义,函数的声明,已经其他头文件的包含

防止头文件的重复包含的机制:

#ifndef 头文件名大写_H

#define 头文件名大写_H

头文件中书写的宏定义及函数的声明;

#endif

当头文件第一次被包含时,判断"头文件名大写_H"宏定义是否被定义,

如果没有定义,则头文件中的代码会被展开,并且定义"头文件名大写_H"宏定义。

当头文件第二次被包含时,判断"头文件名大写_H"宏定义是否被定义,

由于"头文件名大写_H"宏已经被定义,则头文件中的代码将不会被展开。

在书写自己的头文件时,首先手写头文件的重复包含的机制。

重复包含机制中的宏定义的名字可以书写其他的名字,但是"头文件名大写_H"已经成为一种约定俗称的用法。

3 多文件编程的练习

将C基础中的冒泡排序的代码使用多文件编程的方式实现:

冒泡排序的代码封装成函数,写到bubbling.c文件中, 函数的声明写到bubbling.h文件中, 在main.c文件中调用冒泡排序的函数。

bubbling.h文件:

#ifndef __BUBBLING_H__
#define __BUBBLING_H__
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void bubbling(int *s,int len);
void print(int *s);
#endif

bubbling.c文件:

#include "bubbling.h"
void bubbling(int *s,int len)
{
    for(int j = 0; j < len-1; j++){
		//内层循环控制一趟排序
		for(int i = 0; i < len-1-j; i++){
					//此处的 -1 是防止越界访问的
					//此处的 -j 是因为每趟都可以少比较一个元素
			if(s[i] > s[i+1]){//如果是降序 只需要将此处的 > 改成 < 即可
				//交换
				int temp = s[i];
				s[i] = s[i+1];
				s[i+1] = temp;
			}
		}
	}
    return 0;
}

print.c文件

#include "bubbling.h"
void print(int *s){
    //排序前
	int i = 0;
	int j = 0;
	for(i = 0 ; i < 10; i++){
		printf("%d  ", s[i]);
	}
	printf("\n");
}

main.c文件

#include "bubbling.h"
int main(int argc, const char *argv[])
{
    
    int s[10] = {11, 22, 43, 567, 1, 4, 9, 8, 55, 98};
	int len = sizeof(s)/sizeof(s[0]);//数组的长度:元素的个数
	int temp = 0;
    print(s);
    bubbling(s,10);
    print(s);
    return 0;
}

到此这篇关于C语言多文件编程问题解析的文章就介绍到这了,更多相关C语言多文件编程内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

C语言多文件编程问题解析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C语言多文件编程问题解析

在某些场景中,考虑到编译效率和可移植性,#pragmaonce和#ifndef经常被结合使用来避免头文件被重复引入,这里介绍用_Pragma操作符避免头文件重复引入的问题,感兴趣的朋友跟随小编一起看看吧
2022-12-27

C++在vscode中的多文件编程问题解读

这篇文章主要介绍了C++在vscode中的多文件编程问题解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-01-06

C++多线程编程中的并发问题解析

C++多线程编程中的并发问题解析随着计算机硬件的不断发展,多核处理器已经成为了主流。在这种情况下,使用多线程来充分利用多核处理器的性能,成为了程序开发中的一项重要技术。然而,在多线程编程中,由于多个线程之间的并发操作,常常会导致一些问题,这
2023-10-22

c语言编程软件怎么调中文

c++kquote>visual studio code、code::blocks、dev-c++、eclipse ide 和 qt creator 均可切换为中文。步骤如下:visual studio code:修改 "locale.js
c语言编程软件怎么调中文
2024-04-05

如何浅析难以捉摸的C++语言多样化问题

如何浅析难以捉摸的C++语言多样化问题,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。其实C#的语法与C++语言非常相似,有些变化引起的错误却很严重,本文就对于大多数用户头疼的C
2023-06-17

怎么组织构建多文件C语言程序

这篇文章主要讲解了“怎么组织构建多文件C语言程序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么组织构建多文件C语言程序”吧!包含项目头文件位于第二部分中的
2023-06-16

C语言堆排序经典算法TopK问题解析

这篇文章主要为大家介绍了C语言堆排序经典算法TopK问题解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-05-15

C语言编程实例之输出指定图形问题

这篇文章主要介绍了C语言编程实例之输出指定图形问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-01-28

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录