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

Undefined reference to ‘pow()’ using (ZZ)

加上 flag -lm 即可。

Posted in C&C++, 技术为本 | 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 后的文件名也是当前编辑的文件名。

Posted in C&C++, linux应用, 技术为本 | 1 Comment

如何在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 ).

Posted in C&C++, 技术为本 | Tagged , , | Leave a comment

为什么预编译头(Precompiled Header)能够提高编译速度?

上一篇博客我解释了“为什么可以引用未包含的头文件内容?”,这也让我想起了另外一个问题:“为什么预编译头(Precompiled Header)能够提高编译速度?”。既然要刨根问底,不妨再解释一下这个问题。其实呢,只要理解“编译 – 链接”这两个步骤各自的作用和一般编译器提高编译速度的方式,那这个问题是小菜一碟啊。

Posted in C&C++, 为什么?, 技术为本 | Leave a comment