小弟入行刚一年,菜鸟一个。一直边自学单片机编程边使用,直到前些日子才误入21论坛(相见恨晚)。不小心拜读了论坛上几位大虾的心得和热心讲解,顿时感觉眼前一亮,受益匪浅,体会了程序封装、模块化的好处,这些天又找了本c++的书读了读,了解一些相关概念和理念。现在非常想在把自己的程序也改造成为面向对象的程序,最起码封装性要好一些。 但是,听说(没有概念,只好用‘听说’这个词)这样会加重单片机的负担,(我当前的程序对执行时间有一定要求),但不知道是怎样加重的,加重多少。 比如,我定义了一个结构体(模仿‘类’),结构体中有数据也有成员函数。我想知道引用一个成员数据或者成员函数和引用普通的数据或函数有无区别?是通过一个指针(结构体变量指针)加上一个偏移量来寻址,还是在编译过程中就已经把这个地址算好了,直接寻址?如果是程序运行过程中每次都要计算指针,会增大开销,增加多少? 另外,使用C语言,怎样才能更好的实现模块化呢。现在我尝试在创建多个C文件,独立的功能放到一个c文件中,部分变量和函数使用static限定(模仿私有)。这样做可行吗?多个文件的源程序影响整体效率吗? 望高人指点迷津,不吝赐教!!! |