C/C++ Learning

jQuery顶部按钮实现

http://www.scrolltotop.com/国外的一个网站,提供多达几十种的按钮实现,很好的参考!如下:阅读全文

linux用户态程序调试总结

Linux下的用户空间调试工具和技术,它们用来分析用户空间的问题相当有用,主要有下面几种:1.printf打印2./proc查询3.strace和ltrace4.Valgrind5.gdb6.splint静态分析工具7.prof/gprof性能分析工具8.ElectricFence内存调试9.binutil系列工具<h3 id="1">1.printf打印&l...阅读全文

Makefile经典模版,解决头文件依赖

一、基础知识在进行下一步之前,首先需要了解make的执行步骤:1、读入Makefile 2、读入被include的其它Makefile 3、初始化Makefile中的变量 4、推导隐晦规则,并分析所有规则 5、为所有目标创建依赖关系链 6、根据依赖关系,决定哪些目标需要重新生成 7、执行生成命令 二、解决头文件依赖的Makefile模版源文件目录结构:[root@localhost hell...阅读全文

字符串匹配-BruteForce暴力匹配

BF(Brute Force)算法是普通的模式匹配算法,BF算法的思想就是将目标串S的第一个字符与模式串T的第一个字符进行匹配,若相等,则继续比较S的第二个字符和 T的第二个字符;若不相等,则比较S的第二个字符和T的第一个字符,依次比较下去,直到得出最后的匹配结果。BF算法是一种蛮力算法。算法思想:1、依次从主串的首字符开始,与模式串逐一进行匹配;2、遇到失配时,则移到主串的第二个字符,将其...阅读全文

gdb带参数调试,until、watch用法

1、程序运行参数。set args 可指定运行时参数。(如:set args 10 20 30 40 50) show args 命令可以查看设置好的运行参数。(如:set args 10 20 30 40 50) 还有一种方法是:run args 之后再进行调试;2、until设置只能在循环开始处设置有效;3、watch监视变量发生,类似条件断点,也可以watch一个条件表达式;watc...阅读全文

正确的使用snprintf

1、原型 #include <stdio.h> int printf(const char *format, ...); int fprintf(FILE *stream, const char *format, ...); int sprintf(char *str, const char *format, ...); int snprintf(c...阅读全文

open和_open文件控制标志

1、Windowsdefine O_RDONLY 0x0000define O_WRONLY 0x0001define O_RDWR 0x0002define O_APPEND 0x0008define O_CREAT 0x0100define O_TRUNC 0x0200define O_EXCL ...阅读全文

GNU结构体中的0长数组使用

在标准 C 和 C++ 中,不允许用 0 长度数组,但在 GNU C 中,却可以定义 0 长度数组;struct line { int length ; char contents[0]; }; 0 长度数组不占有空间,从打印 sizeof (struct line) 可以看到这个结构体的长度为 4,这 4 字节空间属于整型量 length 。那么结构体里最后的 0 长度...阅读全文

linux内核list.h之链表hlist

1、数据结构//hash桶的头结点 struct hlist_head { struct hlist_node *first;//指向每一个hash桶的第一个结点的指针 }; //hash桶的普通结点 struct hlist_node { struct hlist_node *next, **pprev; }; next指向下一个结点的指针 pprev指向上一个结点的ne...阅读全文

有关void *、(void (*)()) 、void (*)()

void指针是空类型指针,它不指向任何类型,即void指针仅仅是一个地址,所以空类型指针不能进行指针运算,也不能进行间接引用(因为指针运算和间接引用都需要指针的类型信息)。例如: void * p; //仅仅表示p存放一个地址 p++; //error:+、-运算离不开指针类型 *p=20.5; //error:访问p指向的变...阅读全文