- 博客(10)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
转载 zz 阅读高质量代码是提高开发人员修为的一种捷径
<br /> 编者按:原文作者Alan Skorkin是一名软件开发人员,他在博客中分享对软件开发<br />相关的心得,其中有很多优秀的文章,本文是其中的另一篇。Alan认为:阅读优秀代码<br />是提高开发人员修为的一种捷径。以下是全文。<br /><br /> 我突然想起来,很多程序员都讨厌阅读代码。来吧,承认吧! 每个人都喜欢编写代<br />码,编代码是件趣事。 另一方面,阅读代码也不容易。 不仅不容易(编注:参见《微<br />软资深软件工程师:阅读代码不容易》),而且还非常枯燥,咱们要面
2011-01-26 18:40:00
791
转载 linux kernel中的变长参数宏
<br /> 1 函数声明<br /> 首先,要实现类似printf()的变参函数,函数的最后一个参数要用 ... 表示,如<br /> int log(char * arg1, ...)<br /> 这样编译器才能知道这个函数是变参函数。这个参数与变参函数的内部实现完全没有关系,只是让编译器在编译调用此类函数的语句时不计较参数多少老老实实地把全部参数压栈而不报错,当然...之前至少要有一个普通的参数,这是由实现手段限制的。<br /> 2 函数实现<br /> C语言通过几个宏实现变参的
2011-01-26 10:26:00
1707
原创 C中的宏展开
<br />在阅读一些大量使用宏的C项目源码的时候,相信你一定和我一样被宏嵌套折腾得晕头转向,不过没关系,我找到了一种简单的方法,可以将宏作为字符串打印出来,以方便分析:<br />#define macro_to_str1(x) #x #define macro_to_str(x) macro_to_str1(x) .... const char* str=macro_to_str(AnyMacro); printf("%s",str);<br />AnyMacro是任何你想打印出来的待展开的宏。
2010-11-23 11:41:00
1160
原创 单向循环链表反转
<br />昨天面试被问到单向循环链表的反转问题,以前没有考虑过这个问题,答得不是很好,晚上回去仔细想了想,又在网上找了找,总结出以下几种方法:<br />1、利用两个额外变量的情况:<br />node* reverse(node *head) { if(head == NULL || head->next == NULL) { return head; } node *cur = head;
2010-11-09 14:54:00
1775
转载 UNIX系统开发-gcc参数详解
UNIX系统开发-gcc参数详解[版本] -0.13 [声明] 这篇文档是我的关于gcc参数的笔记,我很怀念dos年代我用小本子,纪录所有的dos 命令 的参数.哈哈,下面的东西可能也不是很全面,我参考了很多的书,和gcc的帮助.不全的原 因是,有可能我还没有看到这个参数,另一种原因是,我可能还不会用它 不过,我会慢慢的 补齐的.哈哈 如果你要转在本文章请保留我email(
2010-04-21 09:58:00
519
转载 linux下glut的安装
在linux下opengl编程,首先需要安装glut包。1 安装glut(1)下载地址: http://fidelio.cacs.louisiana.edu/resources/linux/glut.zip(2)将glut.zip解压:unzip glut.zip解压后,里面有一个rpm安装包,一个测试文件,一个glut.h,一个make
2010-04-20 14:00:00
4542
转载 Windows下删除Ubuntu修复mbr
关键字: 双系统下删除ubuntu 如果你是windows与Ubuntu双系统,现在想删除ubuntu或者想重装ubuntu的新版本,这时候如果你直接用PQ删除那个ubuntu的分区,将会使你无法进入windows,你必须先修复你windows的mbr。 简单有效的方法是: 1)到这个地方下载Windows下修复mbr的软件:MbrFix.exe http://www.linuxidc.com
2010-04-16 14:26:00
914
1
原创 eval命令用法
如果想写个Shell脚本能按反向打印出命令行中给的参数,可以这样写:#!/bin/bash ((count=$#)) while true do echo -e “/$$count” ((count=`expr $count-1`)) if [ $count -eq 0 ] then break fi done命名为print,并保存在目录/root/bas
2010-04-16 14:23:00
1288
原创 1002 487-3279
几度崩溃~~ 字符输入输出转换部分还是比较好弄的,关键排序比较麻烦。一开始用带后继的单向链表存放结点,电话号码存在结点的字符串里,因为是链表,就用上了直接插入排序,好容易调试完能出正确结果了,一提交,居然超时。。。看来测试数据那是相当bug。。 于是开始考虑效率问题,把转换好的电话号码作为数字存放在结点中,省去耗时的字符串比较,又弄了个指针数组存放结点地址,对指针数组进行快速排序。。。 程序改了又
2010-03-15 13:51:00
918
原创 umask使用小结
在Linux中,当一个新文件被创建时,系统默认的权限为rw-rw-rw-,对所有用户而言新文件没有执行权限,如果想要添加所有用户的执行权限可以使用"$chomd u+x,g+x,o+x filename"来实现,但如果用gcc命令将某源文件编译链接生成一个新的可执行文件,那它是有执行权限的。系统默认创建新目录也有可执行权限。使用umask命令可以将屏蔽掉用户创建文件时不希望有的权限,实现所谓的"m
2010-03-14 12:30:00
4458
求助一段perl代码的意思
2016-07-03
TA创建的收藏夹 TA关注的收藏夹
TA关注的人