语言相关
gloam2018
态度决定一切!
展开
-
setjmp和longjmp
setjmp和longjmp的使用, 今天在程序里使用setjmp and longjmp进行跳转来进行错误处理,这让我想起了多年前在QBASIC里使用goto感觉,那种对程序的完全控制和自由,当然这种自由也是有代价的,那就是程序的可读性。 但在C语言里适当的使用,也是取代try..catch..的一种方法。 exmaple: #include jm原创 2009-03-14 00:16:00 · 416 阅读 · 0 评论 -
上层判断,底层断言!(if vs assert)
在C语言中,对错误的处理就遵循“上层判断,底层断言”,即上层通过if判断来程序流程进行错误处理,下层直接断言来纠正上层的条件判断。 eg: int fun( void *ptr){ assert( ptr); ....} int main(){ char *str = (char*)malloc( 30); if(原创 2009-04-08 22:15:00 · 513 阅读 · 0 评论 -
代码体积优化
<br />通常程序的优化都是指速度的优化,但有时体积优化也很重要,最近关于体积的优化总结如下:<br />1)减少代码中的死角,所谓死角就是永远不会执行到的地方,对于一个长期维护的一个项目肯定会形成一些这样的死角,有些死角比如没有被调用到的函数,没有被引用的全局变量等是可以通过编译选项最终移除掉。但有些却是不可以的,比如那些靠数据源改变流程调用到的代码,但新数据源的设计使之永远达不到成立的条,这样这部分调用不到的代码就会无谓的曾经程序的体积。所以对于这些代码要移除掉或者用宏隔开。<br />2)机原创 2010-08-29 13:38:00 · 1498 阅读 · 0 评论