![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c
diy534
这个作者很懒,什么都没留下…
展开
-
宏定义中的do while
无论是Linux内核还是其他著名的c、c++库里都能见到 do{} while (0) 这样的写法看似没有意义,其实出自名家之手,是在宏定义里使用的 以前就了解到在程序里使用宏定义的函数后面的分号容易导致问题,今天算是深入认识了 先看一个简单的宏 #define SAFE_FREE(p) do {free(p);p=NULL;} while(0) 如果去掉了转载 2013-08-20 00:49:43 · 874 阅读 · 0 评论 -
随想录(再谈链表)
http://blog.csdn.net/feixiaoxing/article/details/7467730【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 在软件开发中,我想链表是除了数组之外,用的最多的一种数据结构。但是,如何把链表结构和数据本身能够完美地融合在一起,这本身确是一件复杂的事情。但是转载 2012-04-17 22:55:10 · 493 阅读 · 0 评论 -
再‘论’指针&数组
再‘论’指针&数组刚刚接到的通知,下周要去MS面试了。作为一个真心对C++不感冒的人来说,不知道要和他们聊什么了,没准还是HTML 5呢!今天和大家分享一个小知识,关于C的数组和指针的一点学习。 我曾经迷恋上了《C专家编程这本书》,断断续续的看了不到一个月,有一章叫做再论数组,突然想起了,里面曾经谈到的一个经典的话题,就是数组和指针转换的问题。转载 2012-04-13 01:40:45 · 535 阅读 · 0 评论 -
类型定义、数据定义放在头文件里?还是c文件?
类型定义不分配内存的,比如类的定义,结构体的定义,它是定义一个数据类型而已数据定义分配内存,比如类对象定义,变量定义一个原则:不分配内存的,放在头文件分配内存的放在c 或cpp文件头文件中最好不要定义并初始化一个数组,头文件用extern,而在c文件定义并初始化头文件中用extern是表示这个变量是在外部定义,此处要用到,但没有分配内存空间原创 2012-04-24 01:09:30 · 5795 阅读 · 0 评论 -
二叉树先序、中序、后序三种遍历的非递归算法
二叉树先序、中序、后序三种遍历的非递归算法,此三个算法可视为标准算法。1.先序遍历非递归算法#define maxsize 100typedef struct{ Bitree Elem[maxsize]; int top;}SqStack;void PreOrderUnrec(Bitree t){ SqStack s; Sta原创 2012-03-16 00:35:48 · 1113 阅读 · 0 评论 -
C语言九阴真经
http://blog.csdn.net/21aspnet/article/details/7358153发现记忆力越来越差,所以干脆搞这么一个东西,就是把C语言的最常用的语法汇编在一起,不断完善。这样以后只要经常把这个回顾一下就可以了。不然去翻书太多了。。。 f.h[cpp] view plaincopy#define转载 2012-03-29 02:10:15 · 697 阅读 · 0 评论 -
C语言经典著作导读
http://blog.csdn.net/21aspnet/article/details/6558619本人不是卖书的,我也不会给出任何购书链接,只是给C语言学习者推荐一条学习的方向。如果你喜欢看电子书网上很多,如果你喜欢纸质那么就买吧,经典的书值得收藏,是对版权的尊重! 基础篇1.《写给大家看的C语言书(第2版)》原书名: Absolute Beginner转载 2012-03-29 01:58:23 · 796 阅读 · 0 评论 -
C和指针学习
http://blog.csdn.net/21aspnet/article/details/2583048C和指针学习原则:此文尽量短小精悍,实用,需要扩充阅读都是以链接形式出现1.编译#cc program.c生成a.out文件 这个名字是编译器默认的输出名。如果要修改可执行文件的名字可以加-o参数:gcc -o myexec main.c这样就把main.c转载 2012-03-29 01:55:50 · 720 阅读 · 0 评论 -
按位与、或、异或等运算方法
http://blog.csdn.net/21aspnet/article/details/7387373按位与运算符(&)参加运算的两个数据,按二进制位进行“与”运算。运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1; 即:两位同时为“1”,结果才为“1”,否则为0例如:3&5 即 0000 0011 & 00转载 2012-03-29 02:06:19 · 693 阅读 · 0 评论 -
sloccount 代码统计工具
http://www.dwheeler.com/sloccount/转载 2012-03-02 18:17:37 · 1320 阅读 · 0 评论 -
C语言的反汇编代码(BP,SP的关系)
http://bbs.chinaunix.net/thread-1937630-1-1.html转载 2012-04-19 17:03:34 · 2078 阅读 · 0 评论 -
快速掌握一个语言最常用的50%
现在的开发工作要求我们能够快速掌握一门语言。一般来说应对这种挑战有两种态度:其一,粗粗看看语法,就撸起袖子开干,边查Google边学习;其二是花很多时间完整地把整个语言学习一遍,做到胸有成竹,然后再开始做实际工作。然而这两种方法都有弊病。第二种方法的问题当然很明显,不仅浪费了时间,偏离了目标,而且学习效率不高。因为没有实际问题驱动的语言学习通常是不牢固不深入的。有的人学着学着成了语言专家,反而忘了转载 2012-05-10 01:31:07 · 481 阅读 · 0 评论 -
linux 堆、栈、全局变量存放
在学习《深入理解计算机系统》中链接这一章中,数据讲一个可执行文件包含多个段。在Linux系统中代码段总是从0x08048000处开始,数据段在接下来的4KB对齐的地址处,运行时堆在接下来的读写段之后的第一个4KB对齐的地址处,并通过调用malloc库网上增长,开始于地址0x40000000处的段是为共享库保留的,用户栈总是从地址0xbfffffff处开始,并向下增长,从栈的上部开始于地址0xc00转载 2013-07-22 12:19:57 · 1735 阅读 · 0 评论 -
C 字节对齐
http://blog.csdn.net/xuxinshao/article/details/2244277转载 2013-06-17 15:18:26 · 548 阅读 · 0 评论 -
用C语言实现面向对象编程
关于怎么用C语言实现面向对象编程可以参考:(1)gun 项目中的GObject文档(2)linux 内核中虚拟文件系统设计(3)linux驱动开发中的driver model原创 2013-02-28 15:31:02 · 435 阅读 · 0 评论 -
C语言中typedef用法详解
http://blog.csdn.net/goncely/article/details/626440转载 2013-02-28 15:39:15 · 432 阅读 · 0 评论 -
C语言中的二级指针(双指针)
http://blog.csdn.net/yming0221/article/details/7220688转载 2013-03-07 16:51:09 · 652 阅读 · 0 评论 -
如何学好C语言和系统编程
摘自:http://coolshell.cn/articles/4102.html 学好C语言和系统编程。我认为,学好编程有四个方面:语言、算法和数据结构、系统调用和设计。语言。我可以告诉你C语言有两大主题你要好好学,一个是内存管理,一个是指针!这个世界上90%以上的C/C++出的严重性错误全是和这两个有关。不要看谭浩强的那本书,那本是本烂书。推荐这本书给你《C程序设计语言(第转载 2012-09-01 15:12:19 · 1554 阅读 · 0 评论 -
popen 使用例子 c与sh,管道的结合使用
#include int main(int argc, char *argv[]) { char buf[128];FILE *pp;if( (pp = popen("ls -l", "r")) == NULL ) {printf("popen() error!\n");exit(1);}while(fgets(buf, sizeof(buf), pp))原创 2011-11-14 01:06:24 · 695 阅读 · 0 评论 -
system
http://biancheng.dnbcw.info/linux/374005.html转载 2012-06-07 15:44:05 · 398 阅读 · 0 评论 -
system
http://biancheng.dnbcw.info/linux/374005.html转载 2012-06-07 15:43:51 · 403 阅读 · 0 评论 -
标准文件操作的函数,fprintf,fseek,fread,fwrite,feof,ferror, clearerr
http://blog.chinaunix.net/uid-11798538-id-3066922.html转载 2012-02-29 17:30:43 · 648 阅读 · 0 评论 -
sscanf()
sscanf() - 从一个字符串中读进与指定格式相符的数据. 支持集合操作: %[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配) %[aB'] 匹配a、B、'中一员,贪婪性 %[^a] 匹配非a的任意字符,贪婪性 例子: 1.常见用法: char buf[512] = {0}; ssca转载 2012-02-10 08:55:05 · 627 阅读 · 0 评论 -
c库
http://learn.akae.cn/media/ch25s01.html转载 2011-11-07 19:09:49 · 435 阅读 · 0 评论 -
Linux环境下C编程指南(第2版)——目录
第1章 C语言基础和Linux系统概述 1 1.1 C语言基础 2 1.1.1 C语言概述 2 1.1.2 数据类型 2 1.1.3 运算符和表达式 9 1.1.4 C程序语句 10 1.1.5 函数 15 1.1.6 编译预处理 16 1.2 Linux系统概述 18 1.2.1 Linux系统的发展历史 18 1.2.2 Linux系统的特点及主要功能原创 2011-11-06 01:35:27 · 1339 阅读 · 1 评论 -
system和exec、spawn这两个函数族的函数的区别
主要区别是,system中的exe加载过程是由os完成的,system只不过把一条命令行传给了os,由os完成剩下的工作。而exec和spawn是调用dos内核的4Bh功能自己加载一个子程序的,因此能够比较细致地控制加载的过程。MCB申请由4B功能完成,子程序的PSP重构以及JFT的继承由exec和spawn帮你做,而EVB块的内容可以通过它们提供的参数让用户指定。spawn好象还可以通过原创 2011-11-03 00:51:06 · 1231 阅读 · 0 评论 -
temp
变量的定义只能出现一次,否则会导致重复定义。但却可以声明多次。因此全局变量不可以定义在头文件中。因为当该头文件被多个c文件包含的话,会导致重复定义。因此一般做法是在某个特定的头文件中声明,而在另外一个特定的c文件中定义。需要使用就包含前者。全局变量可不可以定义在可被多个.c文件包含的头文件中?为什么?不可以,因为每个.c文件引用该.h文件时,会对.h中的函数重新定义一次。如果全原创 2011-10-27 08:35:50 · 405 阅读 · 0 评论 -
C/C++中几种经典的垃圾回收算法
1.引用计数算法 引用计数(Reference Counting)算法是每个对象计算指向它的指针的数量,当有一个指针指向自己时计数值加1;当删除一个指向自己的指针时,计数值减1,如果计数值减为0,说明已经不存在指向该对象的指针了,所以它可以被安全的销毁了。可以很直观的用下面的图表示: 引用计数算法的优点在于内存管理的开销分布于整个应用程序运行期间,非常转载 2011-10-27 00:50:35 · 893 阅读 · 0 评论 -
生成随机可用端口
知识点:c标准库中的随机:srand();rand();知名端口:0-1023动态端口:1024-65535netstat -an | grep :xx查询端口xx是否可用代码实现:#include #include #define PORT_START 1025#define PORT_END 65534#define原创 2011-11-14 01:03:15 · 7270 阅读 · 0 评论 -
C语言中随机函数应用
http://www.chineselinuxuniversity.net/articles/24629.shtmltime_t t;srand((unsigned) time(&t));printf("%d\n", rand()%100);第二个程序用到了一个新的函数srand,这个函数是给随机数产生一个随机种子(seed),函数原型是srand( (un转载 2011-11-13 22:31:55 · 344 阅读 · 0 评论 -
单元测试以C/C++单元测试为主
http://blog.csdn.net/dellfox/article/details/5484405转载 2011-10-22 00:00:52 · 789 阅读 · 0 评论 -
Linux proc详解
http://apps.hi.baidu.com/share/detail/32689077Linux procfs详解 1.0 proc文件系统总览 在类Unix系统中体现了一种良好的抽象哲学,就是几乎所有的数据实体都被抽象成一个统一的接口--文件来看待,这样我转载 2011-09-28 00:15:52 · 558 阅读 · 0 评论 -
心跳
http://blog.sina.com.cn/s/blog_62538d6f0100fs7f.html 对于 SO_KEEPALIVE做心跳,我也知道,但是平时一般不用,第一是使用SO_KEEPALIVE你无法控制,它会每时每刻都发,但是使用心跳我们自己 可以收到数据包的情况下不发,第二使用了SO_KEEPALIVE后,对于判断网络断开时间太长,对于需要及时响应的程序不太适应。大转载 2011-11-08 00:25:44 · 775 阅读 · 0 评论 -
添加头文件小知识(小技巧)
在这里,要用到一个小的知识点。那就是,在编写程序的过程中,可以先不写头文件,编写完成后,用gcc的-Wall参数来编译。如果一个函数没有相应的头文件,一般会提示: waitpid.c:17:warning:implicit declaration offunction `sleep' waitpid.c:18: warning: implicit declaration of f原创 2011-11-08 10:19:41 · 1123 阅读 · 0 评论 -
undefined reference to gettid
http://topic.csdn.net/u/20100816/18/36ba57a9-6c89-42be-8f93-a37647538b55.html 因为gettid()是Linux他自己的,因此把里面实现函数拷贝出来,写到自己的程序里即可。头文件有实现代码如下:C/C++ codepid_t gettid(){ return syscall转载 2011-12-16 16:33:34 · 7458 阅读 · 0 评论 -
文件指针/句柄(FILE*)、文件描述符(fd)以及 文件路径(filepath)的相互转换
http://blog.csdn.net/jenghau/article/details/5532265 文件指针/句柄(FILE*)、文件描述符(fd)以及 文件路径(filepath)的相互转换 最近在linux下编程常需要对一些文件进行操作。有时不同的条件下,需要将文件指针/句柄(FILE*)、文件描述符(fd)以及文件路径(filepath)进行相互转换,以满足实际的编程转载 2011-12-16 15:52:07 · 654 阅读 · 0 评论 -
删除文件行
http://zhidao.baidu.com/question/228247896.html?fr=qrl&cid=87&index=3转载 2011-12-20 17:37:18 · 567 阅读 · 0 评论 -
【C/C++语言入门篇】-- 文件操作
http://blog.csdn.net/masefee/article/details/5341738转载 2011-12-20 15:20:11 · 390 阅读 · 0 评论 -
freopen (stdin stdout ) 详解+实例
http://www.cnitblog.com/guopingleee/archive/2009/01/17/53843.aspx找一大圈子.........现在看到了点自己能看懂的东西.想不通就慢慢思考! 一定能懂的. 仔细看....都会讲出来...网上这个东西有点难找. 代码:[color=blue]-(dearvoid@LinuxEden:tty3)-(~/t转载 2011-11-29 12:01:53 · 1867 阅读 · 0 评论 -
C语言printf格式
http://www.cnblogs.com/yezhenhan/archive/2011/11/16/2250542.htmlC中格式字符串的一般形式为: %[标志][输出最小宽度][.精度][长度]类型, 其中方括号[]中的项为可选项。各项的意义介绍如下:1.类型类型字符用以表示输出数据的类型,其格式符和意义下表所示:表示输出类型的格式字符 格式字符转载 2011-11-29 00:56:56 · 995 阅读 · 0 评论