查看: 635|回复: 0
打印 上一主题 下一主题

C语言模块化编程 规范编程 个人总结请拍砖

[复制链接]
跳转到指定楼层
沙发
发表于 2016-4-27 21:26:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
一、
写C程序,应该像书上说的采用模块化编程,但书上没具体讲解,合作编程时没有一定的约束是行不通,据说LINUX上的模块编程很规范,应该学学
个人认为一般的编程应该像STM32上的程序模块一样,=====不同的外设驱动如timer gpio等放在一个文件里, =====不同的外围硬件驱动如TFT液晶,传感器AD DA的驱动放在一个文件里,主函数是用一个main.c管理。用宏定义之类的进行处理,确保在main中能调用到这两个文件中的任何一个C函数,如下图main所示  


二、模块化中的数据传递的效率与代码问题---------子函数的目的是调用外设、外围硬件得到的数据  并存入在数组buff中,有主函数调用它时,传递数组据

我一般采用的方法:在main中调用子函数,子函数返回数组buff的地址  ,通过这个地址来访问子函数中数组数据(C 函数return一堆数吧?)
问题在于   在main函数中  如何得到子函数的数组buff中的数,

          法1:在main中开辟数组,通过子函数传递的首地址,把数组buff的内容复现过来
          法2:在main中定义指针变量,通过子函数传递的首地址,指向数组buff
用一个18B20来测试如下
          本例中ds18b20.c中的ID子函数的目的是得到18B20的ID号,并存入缓存buff中,
          在main函数中,采用法1 ,定义一个数组RomComd ,通过buff的首地址把ID号复制进来。(ID子函数返回的是buff数组的首地址)
                           采用法2 ,定义一指针变量*p,指向buff的首地址,指向buff数组。

          经验证:    法1-----多定义一个变量数组用来复制内容,但定义代码少(实测,少一10个code)
                                      法2-----指针指向法好理解,但编译后的代码多
                     
问题在于***************是不是代码越少 效率越高。???????哪位能描述一下这两个的好坏
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

快速回复 返回顶部 返回列表