函数主体为何不直接写在 .h 文件中

    在学习stm32的时候,遇到了一个疑惑:先写一个.c文件,然后把把函数主体写在.c文件内,然后在.h文件中声明,再include .h。为何不直接写在.h文件里面,然后之间include .h

    关于这个问题,查了一下得到了解惑:

    1.从软件工程的角度,代码的实现不会写在头文件里面。因为它违背了隐蔽细节的原则,也就是我们需要暴露的是接口而不是细节。你不需要告述别人的代码是如何实现的,你只要提供接口就行啦。头文件就是c语言的接口。因为你想调用别人的接口只需要include别人的头文件,再连接或动态的调用别人的库就行啦。
    2.从编译的角度,你如果写在头文件里面,改一次代码,和这个头文件有关嗯文件都要重新编译,这对大型项目来说非常耗时的。
    3.亲测对于小型工程这样是可行,但是还是要养成主体函数写在 .c 里,然后在 .h 里面声明,接着在再include .h
sht.h和sht.c是一对代码文件,用于定义和实现简单哈希表(Simple Hash Table)。哈希表是一种常用的数据结构,用于存储键值对并实现高效的查找操作。 在sht.h文件,我们定义了哈希表的结构体和函数的声明。结构体包含一个数组作为哈希表的主体,以及其他一些标志和计数变量用于辅助操作。函数的声明包括哈希表的创建、销毁、插入、删除以及查找操作等。 sht.c文件则是实现了sht.h声明的函数。首先,我们需要初始化哈希表,即分配内存空间,并设置数组元素默认值为空(表示该位置未被占用)。在插入操作,将要插入的键值对通过哈希函数计算出一个哈希值,然后将该键值对存储到对应的数组位置。若发生哈希冲突(即多个键值对计算出的哈希值相同),则采用开放寻址法或链表法来解决。在查找操作,同样通过哈希函数计算出哈希值,然后在对应的位置上找到对应的键值对,实现了快速的查找,节省了查找时间。 简单哈希表的优点是具有快速的查找操作,时间复杂度为O(1),而不受数据量的大小影响。但也存在一些缺点,如处理哈希冲突的开放寻址法或链表法会增加一定的额外空间开销。 总之,sht.h和sht.c文件提供了一个简单哈希表的实现,可以用于存储和快速查找键值对。通过合理的哈希函数和解决哈希冲突的方法,可以提高查找效率并满足对数据存储和查找的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值