-
Archives
- January 2012
- October 2011
- August 2011
- June 2011
- May 2011
- April 2011
- March 2011
- February 2011
- January 2011
- December 2010
- November 2010
- October 2010
- August 2010
- July 2010
- July 2009
- February 2009
- December 2008
- November 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- January 2008
- December 2007
- November 2007
- April 2007
- November 2006
-
Meta
Category Archives: C&C++
MD5 算法 (The MD5 Message-Digest Algorithm)
MD5即Message-Digest Algorithm 5(信息-摘要算法 5),用于确保信息传输完整一致。是计算机广泛使用的雜湊算法之一(又译摘要算法、哈希算法),主流编程语言普遍已有MD5实现。 在维基百科上有详细介绍,在各种语言上也都已有相应实现。 http://www.ietf.org/rfc/rfc1321.txt 上给出了算法介绍和C语言的实现。 我们在使用过程中发现一个问题,就是计算出来的MD5值有误。 经过调查,并非算法有问题,而是因为机器是64位系统导致的,在32位系统上就没问题。 为了通用性,只要把md5.h中的41行,修改一下就可以了。 typedef unsigned int UINT4;
Posted in C&C++, linux应用, 技术为本
Leave a comment
一个简单的 makefile 模板
一个简单的 makefile 模板, CC = gcc CFLAGS+=-c -Wall -I[include_path] LDFLAGS+= -lm SOURCES= \ main.c \ OBJECTS=$(SOURCES:.c=.o) EXECUTABLE=test all: $(SOURCES) $(EXECUTABLE) $(EXECUTABLE): $(OBJECTS) $(CC) $(LDFLAGS) $(OBJECTS) -o $@ .c.o: $(CC) $(CFLAGS) $< -o $@ .PHONY: clean clean: rm -f $(EXECUTABLE) $(OBJECTS)
Posted in C&C++, linux应用, 技术为本
Leave a comment
What’s this: __attribute__((packed))
今天在Android的代码里面看到了“__attribute__((packed))”,不清楚什么意思,上网搜了一下,大概明白了。就是让struct按照紧凑模式排列,中间不留任何缝隙。这样在不同的处理器,不同的网络传输等情况都不会出现对齐问题了。很好很强大。 参考链接:http://www.linuxquestions.org/questions/programming-9/whats-this-__attribute__-packed-193570/ 后面是摘录网页上的解释,写的很好。
Posted in Android, C&C++, 技术为本
Leave a comment
VIM自动给脚本加注释(转载)
写程序的时候给代码注释有时候蛮烦人的,尤其是用英文写注释的时候,不过养成写注释的习惯,对日后代码的维护还是很有帮助的,一般脚本的开头会注明编写时间,版本,用途等说明。 VIM 里面可以使用映射(map)来帮你自动插入这些信息,就像下面这样 #**************************************************** # Author: Muddyboot – toobyddum@gmail.com # Last modified: 2007-08-10 21:19 # Filename: /etc/vimrc # Description: Configuration for vim editor #**************************************************** 其中 Last modified 后面的时间是根据当前时间自动插入的,Filename 后的文件名也是当前编辑的文件名。
如何在C/C++代码中执行一个DOS命令(Win平台)
简单来说可以有三种方式可以实现: int system( const char *command ). UINT WinExec( LPCSTR lpCmdLine, UINT uCmdShow ). HINSTANCE ShellExecute( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd ).
为什么预编译头(Precompiled Header)能够提高编译速度?
上一篇博客我解释了“为什么可以引用未包含的头文件内容?”,这也让我想起了另外一个问题:“为什么预编译头(Precompiled Header)能够提高编译速度?”。既然要刨根问底,不妨再解释一下这个问题。其实呢,只要理解“编译 – 链接”这两个步骤各自的作用和一般编译器提高编译速度的方式,那这个问题是小菜一碟啊。
Posted in C&C++, 为什么?, 技术为本
Leave a comment