Giter VIP home page Giter VIP logo

lw_oopc's Introduction

LW_OOPC升级版本发布说明

本人在金永华对于高焕堂的lw_oopc的源码的基础上进行了一些简单的修改和调试. 使得lw_oopc能够用在实际的嵌入式项目中, 作为一个很好的框架传播开来.

主要改进有:

  1. 修正了一些小错误, 使得编译通过.
  2. 调整了一些宏的位置, 使得配置接口只在lw_oopc.h中.
  3. 经过测试可以直接在*nix下编译运行, 删掉多余的VS工程文件.

我的联系方式:

以下为金永华([email protected])在他的repo上的一些说明.

  • 在高焕堂先生的著作《UML+OOPC嵌入式C语言开发精讲》中介绍了高先生及其MISOO团队创作的lw_oopc宏.
  • 在研读这套宏的过程中, 我发现高先生提供的这套宏还过于简陋, 不能够优雅地支持面向接口编程.
  • 经过认真钻研, 我对原有的这套宏进行了扩充和改良, 得到了lw_oopc宏的升级改进版本.
  • 改良后的这套宏,能够很好地支持面向对象编程,能够支持面向接口编程(甚至支持复杂的多重继承).
  • 经邮件与高焕堂先生联系,征得高先生同意,以LGPL协议开源,感谢高先生以及MISOO团队的贡献!

原有高焕堂先生及其MISOO团队创作的宏(总共6个宏),清单如下:

高焕堂及MISOO创作的宏 是否存在问题? 是否修改?
INTERFACE 没有问题
CLASS 无法支持继承
CTOR 对申请不到内存的情况未保护
END_CTOR 没有问题
FUNCTION_SETTING 没有问题
IMPLEMENTS 没有问题

为了更好的支持面向对象以及面向接口编程,金永华增加了14个宏:

创作的宏 创作目的()为了解决什么问题?)
DTOR / END_DTOR 为了支持析构函数的概念
ABS_CLASS 为了支持抽象类的概念
ABS_CTOR / END_ABS_CTOR 为了支持可继承的抽象类的构造函数
EXTENDS 为了让熟悉Java的人容易理解(与IMPLEMENTS宏等同)
SUPER_CTOR 为了支持子类调用父类的构造函数
SUPER_PTR / SUPER_PTR_2 / SUPER_PTR_3 为了支持向上转型
SUB_PTR / SUB_PTR_2 / SUB_PTR_3 为了支持向下转型
INHERIT_FROM 为了支持访问直接父类的数据成员
  • 希望这套宏,能够真正帮助到想用C语言写出面向对象代码的C程序员们!

lw_oopc's People

Contributors

akagi201 avatar

Watchers

凌烟辽西 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.