0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言程序例程的文件结构

Q4MP_gh_c472c21 来源:未知 作者:龚婷 2018-03-14 10:32 次阅读

以往写C语言程序都是一个文件里面写个几十、几百行,在练算法的时候还可以,现在搞开发需要模块化编程,所谓模块化编程,就是指一个程序包含多个源文件(.c 文件和 .h 文件),每个 .c 文件可以被称为一个模块。

1、例程的文件结构

2、各文件代码main.c 源码:

#include #include "include/func.h"intmain()

{

intn1 = 1, n2 = 10;

printf("从%d加到%d的和为%ld\n", n1, n2, sum(n1, n2));

printf("从%d乘到%d的积为%ld\n", n1, n2, mult(n1, n2));

printf("OS:%s\n",OS);

printf("Power By %s(%s)", getWebName(), getWebURL());

return0;

}

math.c 源码:

// 没有使用到 func.h 中的函数声明或宏定义,也可以不包含进来

#include "../include/func.h"

// 从 fromNum 加到 endNumlongsum(intfromNum, intendNum)

{

inti;

longresult = 0;

// 参数不符合规则,返回 -1

if(fromNum<0 || endNum<0 || endNum

{

return-1;

}

for(i=fromNum; i<=endNum; i++)

{

result += i;

}

// 返回大于等于0的值

returnresult;

}

// 从 fromNum 乘到 endNumlongmult(intfromNum, intendNum)

{

inti;

longresult = 1;

// 参数不符合规则,返回 -1

if(fromNum<0 || endNum<0 || endNum

{

return-1;

}

for(i=fromNum; i<=endNum; i++)

{

result *= i;

}

// 返回大于等于0的值

returnresult;

}

web.c 源码:

// 使用到了 func.h 中的宏定义,必须包含进来,否则编译错误

#include "../include/func.h"char* getWebName()

{

returnWEB_NAME;

}char* getWebURL()

{

returnWEB_URL;

}

func.h 源码:

#ifndef _FUNC_H

#define _FUNC_H

// 用宏定义来代替全局变量

#define OS "Linux"

#define WEB_URL "http://www.baidu.com"

#define WEB_NAME "百度"

// 也可以省略 extern,不过为了程序可读性,建议都写上

externlongsum(int, int);

externlongmult(int, int);

externchar* getWebName();

externchar* getWebURL();

#endif

运行结果:

从1加到10的和为55从1乘到10的积为3628800OS:Linux

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7528

    浏览量

    128434
  • 源文件
    +关注

    关注

    0

    文章

    30

    浏览量

    4517

原文标题:通俗易懂!Linux C模块化编程实例讲解

文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    ROS编写参数配置文件例程序

    _config.yaml这三个文件中,这三个文件均位于下图所示的目录下,下面依次进行详细的介绍 1、编写user_config.yaml参数配置文件 首先,我们来看作者提供的示例程序
    的头像 发表于 11-26 17:35 781次阅读
    ROS编写参数配置<b class='flag-5'>文件</b>示<b class='flag-5'>例程序</b>

    c语言编写的源程序可以直接运行吗

    C语言编写的源程序不能直接运行,必须经过一系列的编译链接过程才能生成可执行文件,然后才能运行。 C语言是一种高级编程语言,它的源代码需要被编
    的头像 发表于 11-26 09:03 2929次阅读

    c源程序的基本结构是什么

    C语言程序的基本结构是由多个函数组成的。每个程序至少包含一个主函数,也可以包含其他的函数,而这些函数相互之间可以进行相互调用,以完成特定的任务。 一、头
    的头像 发表于 11-24 10:24 672次阅读

    C语言怎样处理json文件?

    获取到的JSON文件,怎样通过C语言进行处理,因为单片机里面只能用C语言,有没有C
    发表于 11-01 06:16

    51单片机C语言程序100例分享

    51单片机C语言程序例程,通过简单的程序来学习51单片机,适合入门级使用!
    发表于 10-09 07:19

    bin文件转C语言可以做吗?

    说实话,在我的认知里,bin文件转C语言是不可能的,即便能转,也是那种非常简单的程序,比如:点灯。
    的头像 发表于 08-17 09:04 1213次阅读
    bin<b class='flag-5'>文件</b>转C<b class='flag-5'>语言</b>可以做吗?

    ARM C语言扩展资料

    Arm体系结构包含的功能超出了C/C++程序员可使用的操作集。Arm C语言扩展(ACLE)的目
    发表于 08-11 07:31

    ARM C语言扩展规范

    ARM C语言扩展(ACLE)规范指定源语言扩展和实现C/C++编译器可以实现的选项,以便让程序
    发表于 08-02 06:27

    详解C语言程序内存分区

    每一个C语言程序,都将最终经过这一处理而得到相应的目标文件
    的头像 发表于 06-11 17:29 876次阅读
    详解C<b class='flag-5'>语言</b><b class='flag-5'>程序</b>内存分区

    嵌入式C语言编程——.h文件与.c文件

    参考高手的程序时,发现别人写的严格的程序都带有一个“KEY.H”,里面定义了.C文件里用到的自己写的函数,如Keyhit()、Keyscan()等。.H文件就是头
    发表于 06-07 10:14 475次阅读

    结构类型(3)#C语言程序设计进阶

    C语言
    学习硬声知识
    发布于 :2023年05月31日 15:45:30

    结构类型(2)#C语言程序设计进阶

    C语言
    学习硬声知识
    发布于 :2023年05月31日 15:43:44

    结构类型(1)#C语言程序设计进阶

    C语言
    学习硬声知识
    发布于 :2023年05月31日 15:43:04

    结构中的结构(2)#C语言程序设计进阶

    C语言
    学习硬声知识
    发布于 :2023年05月31日 15:41:18

    结构中的结构(1)#C语言程序设计进阶

    C语言
    学习硬声知识
    发布于 :2023年05月31日 15:40:41