返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言多文件编程问题解析
  • 104
分享到

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

C语言多文件编程C语言编程 2022-12-27 12:12:29 104人浏览 独家记忆
摘要

目录1 为什么要使用多文件编程2 多文件编程的使用方法3 多文件编程的练习1 为什么要使用多文件编程 在大型的综合项目中,是由很多具有不同的功能的代码构成,不可能将所有的代码都写到一

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语言多文件编程内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

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

本文链接: https://lsjlt.com/news/175910.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C语言多文件编程问题解析
    目录1 为什么要使用多文件编程2 多文件编程的使用方法3 多文件编程的练习1 为什么要使用多文件编程 在大型的综合项目中,是由很多具有不同的功能的代码构成,不可能将所有的代码都写到一...
    99+
    2022-12-27
    C语言多文件编程 C语言编程
  • 解析C++多文件编程问题
    目录一、多文件编程是什么二、如何防治头文件被重复引入1. 使用宏定义避免2. 使用 #pragma once 避免3. 使用 _Pragma 操作符三、命名空间如何应用在多文件编程中...
    99+
    2024-04-02
  • C语言多文件编写详解
    目录关于多文件调用关于多文件调用中的BUGexternBUG1:ifndef 与 endif总结关于多文件调用 只能有一个 main.c 文件 其余函数分别在 func1.c **...
    99+
    2024-04-02
  • C++在vscode中的多文件编程问题解读
    目录C++在vscode中的多文件编程vscode编译多个C++文件问题解决方法总结C++在vscode中的多文件编程 相信有很多的小伙伴在一开始的时候,都会对vscode的多文件编...
    99+
    2023-01-06
    C++ vscode 多文件编程 vscode多文件编程
  • C++多线程编程中的并发问题解析
    C++多线程编程中的并发问题解析随着计算机硬件的不断发展,多核处理器已经成为了主流。在这种情况下,使用多线程来充分利用多核处理器的性能,成为了程序开发中的一项重要技术。然而,在多线程编程中,由于多个线程之间的并发操作,常常会导致一些问题,这...
    99+
    2023-10-22
    解析 并发问题 C++多线程编程
  • C语言详细分析讲解多文件的程序设计
    目录一、多文件与编译器链接二、多文件之间的相互访问三、关于#include四、头文件使用的一些原则五、再论全局变量六、注意事项七、实验程序八、小结一、多文件与编译器链接 如下图所示,...
    99+
    2024-04-02
  • C语言编程大小端问题示例详解教程
    目录如何理解大小端大小端的基本概念大小端是如何影响数据的存取的今天想给大家分享的,是数据存储中的大小端问题,今天的分享主要分为三个部分,分别是如何理解大小端,大小端的基本概念以及大小...
    99+
    2024-04-02
  • 详解C语言编程之thread多线程
    目录线程创建与结束线程的创建方式:线程的结束方式:join()detach()互斥锁<mutex> 头文件介绍std::mutex 介绍std::lock_guardst...
    99+
    2024-04-02
  • C语言动态规划多种背包问题分析讲解
    目录写在前面01背包问题完全背包问题多重背包问题 I多重背包问题 II为什么可以这样优化呢一 、二进制与十进制二 、动态规划的时间复杂度估算三 、多重背包分组背包问题写在前面 之前讲...
    99+
    2024-04-02
  • C语言编程深入理解取整取余取模问题示例分析
    目录1. 取整问题1.0向取整(C语言默认的取整方案)2.地板取整(向负无穷的方向取整)3.天花板取整(向+无穷的方向取整)4.四舍五入取整汇总例子2.取模问题 1.余数的定义2.两...
    99+
    2024-04-02
  • c语言编程软件怎么调中文
    c++kquote>visual studio code、code::blocks、dev-c++、eclipse ide 和 qt creator 均可切换为中文。步骤如下:vi...
    99+
    2024-04-05
    c语言 c++ c语言编程
  • C语言与Go编程语言的特性对比解析
    C语言与Go编程语言的特性对比解析 C语言和Go编程语言都是流行的编程语言,在软件开发领域有着广泛的应用。本文将从语法、并发机制、内存管理等方面对C语言和Go编程语言进行对比解析,帮助...
    99+
    2024-04-02
  • C语言 程序的编译系统解析
    目录程序的翻译环境和执行环境编译和链接翻译环境编译的几个阶段预处理编译汇编链接运行环境今天我来补一下C语言篇的程序的编译的一篇文章,也算是有一个结尾了。 程序的翻译环境和执行环境 在...
    99+
    2024-04-02
  • C语言文件操作分析
    本篇内容介绍了“C语言文件操作分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!文件的随机读写之前的函数只能实现顺序读写,而实现随机读写需用...
    99+
    2023-06-25
  • c#编程语言用什么软件编程
    用于 c# 编程的流行软件有:microsoft visual studio:全面且最常用的 ide,提供完善的工具集。jetbrains rider:跨平台 ide,提供智能代码辅助和...
    99+
    2024-04-04
    linux macos c# 移动应用程序
  • c语言头文件如何编写
    c 语言头文件编写指南:使用 .h 扩展名。使用头文件保护防止多次包含。使用 #include 包含其他头文件。声明函数原型,包括函数名、参数类型和返回值类型。定义结构体,包括成员变量和...
    99+
    2024-05-22
    c语言
  • R语言编码问题的解决
    今天博客主要是解决一个学R语言里面最最痛苦的问题(嗯,python2.x里面也有),就是中文乱码问题: 一般用R语言的同学,多半遇见过以下这个问题: 反正虾神我每次遇见这个问题,立...
    99+
    2024-04-02
  • 如何浅析难以捉摸的C++语言多样化问题
    如何浅析难以捉摸的C++语言多样化问题,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。其实C#的语法与C++语言非常相似,有些变化引起的错误却很严重,本文就对于大多数用户头疼的C...
    99+
    2023-06-17
  • 怎么组织构建多文件C语言程序
    这篇文章主要讲解了“怎么组织构建多文件C语言程序”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么组织构建多文件C语言程序”吧!包含项目头文件位于第二部分中的 的源代码如下:...#inc...
    99+
    2023-06-16
  • C语言堆排序经典算法TopK问题解析
    目录问题描述:快速排序TopK问题描述: 从arr[1, n]这n个数中,找出最大的k个数,这就是经典的TopK问题 什么是TopK,就是找到一个无序队列中的k个最大数。 TopK...
    99+
    2023-05-15
    C语言堆排序TopK算法 TopK算法问题
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作