编写可移植C/C++程序的要点

昨天看了05年的《程序员(精华本)》,里面有篇关于编写可移植的C++程序的文章,引起了我一丝兴趣,大致读了一下,有点启发。不过感觉作者是位学院派的人士,没有大型项目的移植经验,把移植想得太简单了,以为一个Adapter模式就搞定了所有的东西,太理想化了。

以前做过两年C++程序移植工作,从Win32平台移植到Linux平台。大约有上百万行C/C++代码,历时一年多。在开发Win32版本时,已经强调了程序的可植性,无奈Win32团队里对Linux精通的人比较少,很多问题没有想到,直到后来移植工作开始时,才发现移植并非像想的那样简单。
Continue reading 编写可移植C/C++程序的要点

Idle 函数的三大用途

我们知道glib提供了一个名为g_idle_add的函数,这个函数的功能很容易理解:增加一个空闲任务,让应用程序在空闲时执行指定的函数。这种机制非常有用,如果没有这种机制,很多事情将非常麻烦。它的功能虽然简单,但并不是所有人都知道如何充分发挥它的潜力,这里说说它的几个主要用途吧。
Continue reading Idle 函数的三大用途

Open Sound System (OSS) 研究笔记

我们知道,在Win32下,用waveOut系列函数播放声音,用waveIn系列函数录制声音。这套函数设计简单易用,如果使用DirectX可能还会有更好用的接口。而在linux下,这个问题要麻烦不少,在很长一段时间里,我甚至不知道linux下是如何播放声音的。这几天在研究ALSA,我知道ALSA是OSS的替代品,而且兼容OSS。为了了解ALSA的优势所在,我决定先研究OSS。本文记录了一些在研究过程中所记的笔记。
Continue reading Open Sound System (OSS) 研究笔记

两则C语言技巧

以前用C++时,喜欢去玩一些语法上的技巧,每学到一个技巧都高兴得不得了,总是想找个地方用它,以显示自己的水平。其实我们应该更关心技巧的实用价值,如果一项技巧很巧妙,但很少用它,忘掉了也不必觉得可惜。最近发现两则C语言技巧,以前没有用过,觉得有些实用价值,做个笔记吧。
Continue reading 两则C语言技巧