转:c的回归-云风】的更多相关文章

C 的回归 周末出差,去另一个城市给公司的一个项目解决点问题.回程去机场的路上,我用手机上 google reader 打发时间.第一眼就看到孟岩大大新的一篇:Linux之父话糙理不糙 .主题是 C 与 C++ 的语言之争.转到刘江的 blog 下读完了Linux之父炮轰C++:糟糕程序员的垃圾语言 大呼过瘾.立刻把链接短信发给了几个朋友. 语言之争永远是火药味十足的话题.尤其是 C 和 C++ 的目标市场又有很高的重合性,C++ 程序员往往对C++ 其有着宗教般的虔诚.我想,今天我在自己的 b…
前言 从明天起 关心粮食和蔬菜 我有一所房子 面朝大海 春暖花开 本文前提条件 1.了解 posix 线程 2.了解 原子操作 3.具备简单C基础,或者 你也敲一遍. 如果上面不太清楚,你可以翻看我以前的博客,或者'百度'搜索. 结论 1.云风前辈的 玩具 cstring 有点坑, 内存管理很随意(也可能时我菜,理解不了他飘逸的写法) 2.对于江湖中成名已久的 高手, 其实 胜在 思路上. 3.前辈3-4h搞完的,重构了1周, 发现 const char* 和 char* 够用了,真的,越简单越…
转:  http://forthxu.com/blog/skynet.html skynet是云风编写的服务端底层管理框架,底层由C编写,配套lua作为脚本使用,可换python等其他脚本语言.skynet主要工作是管理注册服务,并开启多线程协调服务之间的调用和通讯. skynet一般用于开发游戏服务端程序. 注意:资料开始往github组织账号skynetclub上转移,本页面不在进行更新主要收集学习skynet有关的任何内容,如果你有好的资料或者你在研究skynet,可以将资料或链接地址发给…
本例主要介绍 如何将 pbc 集成到quick-cocos2dx框架中,让我们的cocos2dx客户端Lua拥有编解码Protocol Buffers能力. 参考: 云风pbc的用法: http://www.cnblogs.com/ghost240/archive/2013/08/12/3253092.html 本例使用的项目位置: https://github.com/miaodadao/pbc  框架Quick-cocos2dx官网:http://cn.quick-x.com/ pb文件生成…
前言 前段时间研读云风的coroutine库,为了加深印象,做个简单的笔记.不愧是大神,云风只用200行的C代码就实现了一个最简单的协程,代码风格精简,非常适合用来理解协程和用来提升编码能力. 协程简介 协程是用同步的写法达到异步的性能.其基本原理是在IO等待时切换出去,在适当的时刻切换回来,最大程度利用CPU.协程可以理解为一个用户级的线程,一个线程里跑多个协程.并且,不管协程数量多少,都是串行运行的,就是说不存在同一时刻属于一个线程的不同协程同时运行.因此避免了多线程编程可能导致的同步问题.…
今天实现了一个 C 用的 coroutine 库. 我相信这个东西已经被无数 C 程序员实现过了, 但是通过 google 找了许多, 或是接口不让我满意, 或是过于重量. 在 Windows 下, 我们可以通过 fiber 来实现 coroutine , 在 posix 下, 有更简单的选择就是 setcontext . 我的需求是这样的: 首先我需要一个 asymmetric coroutine .如果你用过 lua 的 coroutine 就明白我指的是什么. 其次,我不希望使用 coro…
http://mp.weixin.qq.com/s?__biz=MzA3NjYxOTA0MQ==&mid=405432715&idx=1&sn=2e40ceafd4b298e19971a7703daf5c22&scene=0#wechat_redirect…
面向对象编程不是银弹.大部分场合,我对面向对象的使用非常谨慎,能不用则不用.相关的讨论就不展开了. 但是,某些场合下,采用面向对象的确是比较好的方案.比如 UI 框架,又比如 3d 渲染引擎中的场景管理.C 语言对面向对象编程并没有原生支持,但没有原生支持并不等于不适合用 C 写面向对象程序.反而,我们对具体实现方式有更多的选择. 大部分用 C 写面向对象程序的程序员受 C++ 影响颇深.企图用宏模拟出一个常见 C++ 编译器已经实现的对象模型.于我愚见,这并不是一个好的方向.C++ 的对象模型…
cocos2d-x 3.x版本号变动比較大,从改用cmake管理整个项目,到使用python集成一体化的项目工具. 这些都是我喜欢的.我能够非常easy的在我的ubuntu上面搭建好开发环境,并且根本就不用考虑IDE的事情,sublime-text or emacs足矣.唯一须要自己动手的就是制作一个比較好的调试工具.我是使用lua+cplusplus开发,所以调试就比較的难受,临时仅仅能这样,后面考虑自己实现一个远程lua调试工具. 触控有公布一款IDE,但是眼下没有linux平台的版本号.我…
#include <stdlib.h> #include <stdio.h> // 用于统计内存的申请和释放次数匹配 ; void * _pbcM_malloc(size_t sz) { ++ _g; return malloc(sz); } void _pbcM_free(void *p) { if (p) { -- _g; free(p); } } void* _pbcM_realloc(void *p, size_t sz) { return realloc(p,sz); }…