【看这一篇即可】——C语言函数模块化(多文件函数、变量共享调用)

背景

网上多文件的变量共享、函数调用繁杂,一个很清楚的问题整的很乱,特此写博客提供参考(无需extern)。

环境

win10+CLion

习惯用IDEA、Pycharm的你肯定会习惯于CLion这头狮子

实验步骤

  • CLion新建工程,选择无中文的路径,否则报错无法编译
  • 将待拆分的C文件代码拷贝到main.c(自动生成的文件)
  • 首先对main.c进行函数extract(若已提取则跳过)
  • 按照函数的功能分类,规划分为几个模块文件
  • 多文件调用、共享变量和函数。

第5步详解

将规划的模块新建一个.c/.h
提取
将函数复制到.c中,在.h中include .c,否则找不到函数体,在.h中声明函数,否则main.c包含了.h后仍需声明一次函数
.c文件
include .h是自动添加的,个人感觉没必要
.h文件
在.h中对.c的函数进行声明
main.c
在主函数中include,注意主函数中定义的变量为共享变量(即共享变量放到main.c中;当然也可单独放到一个模块的.c中,在.h中声明extern TYPE VAR_NAME; 在main.c中引用即可,具体见下示例),需要放到include 自定义.h的前面,否则报错未定义。main.c的宏定义同样需要放到include 自定义.h的前面,否则报错未定义。

  • 变量模块举例:
    .c文件
    .h文件
    重定义的结构体无需extern,因为不是定义变量(这里不用extern好像也可以编译通过)

因为后面函数均使用了SIZE,所以需要放到用户自定义文件之上:
main.c

总结

按照原则“include就是复制文件内容到本文件”,理解为什么这么写.c 和 .h文件,以及main.c如何调用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大数据李菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值