[开发资料] 模块化编程和条件编译

[复制链接]
165|2
zerorobert 发表于 2025-10-17 23:35 | 显示全部楼层 |阅读模式
1.模块化编程模块化编程就是把不同类型的函数放在不同的C文件中,并编写相应的.h头文件。这样一来,只需要在主函数C文件中包含.h头文件即可调用相应函数。        
  • C文件里除了写各种函数之外,也可以写对寄存器的定义(sbit,sfr等)。在C文件中定义的变量并不能在其他C文件中调用。
  • .h头文件中不应包含任何实质性函数代码,它只是一个接口文件,里边只能写一些函数声明和接口变量。头文件格式通常如下:



e4ea23c3f3ac3ffbec9952be28a110003a561630.png@1192w.webp
头文件格式
  • 若想在不同c文件中使用同一变量,这两个c文件必须包含同一个头文件,在这一头文件中,需要用extern定义接口变量。然后,只需在一个c文件中再次定义这一变量,这两个c文件中就都可以调用这一变量了。
2.条件编译       引入了模块化编程,.h头文件就会变多。在c文件中,包含各种各样的头文件,如果这些头文件中有重复定义的部分,就会导致编译出错,此时就需要条件编译。


508179a63ab2a6be4898150a1b8b73d0ea95306c.png@1192w.webp


重复定义问题
     比如在简化变量定义的时候,常常会使用如下语句:



a950d0e3338f10bd6407f232aeb07f371b7ef4e4.png@1008w_212h.webp
     上面的语句在每个头文件中都要用,这就会导致重复编译,我们使用条件编译就可以解决问题。



d06787960792379e56b46f496ea2efbdc6a60c31.png@1192w.webp


      条件编译作用还有很多,除了上述 #ifndef #define #endif 这样的用法之外,还有其他一些用法。但其他用法还没怎么用到,等用到之后可能会再写。

OKAKAKO 发表于 2025-10-19 22:51 | 显示全部楼层
模块化编程和条件编译
中国龙芯CDX 发表于 2025-10-24 14:27 | 显示全部楼层
引入了模块化编程,.h头文件就会变多。在c文件中,包含各种各样的头文件,如果这些头文件中有重复定义的部分,就会导致编译出错,此时就需要条件编译。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

58

主题

1967

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部