C语言
文章平均质量分 77
jack_ooneil
做人如果没有梦想和咸鱼有什么分别?
展开
-
printf可变参数的实现
我是大自然的搬运工。。。。。print.h[cpp] view plaincopy#ifndef __PRINT_H_ #define __PRINT_H_ void print(char* fmt, ...); void printch(char ch); void转载 2015-11-05 21:08:29 · 837 阅读 · 0 评论 -
linux下生成core文件及调试
转载:http://leonzhan.iteye.com/blog/803008Linux下的C程序常常会因为内存访问错误等原因造成segment fault(段错误),此时如果系统core dump功能是打开的,那么将会有内存映像转储到硬盘上来,之后可以用gdb对core文件进行分析,还原系统发生段错误时刻的堆栈情况。这对于我们发现程序bug很有帮助。使用ulimit -a可以查看系统c转载 2015-09-23 14:29:32 · 888 阅读 · 1 评论 -
栈的PUSH POP序列
输入两个整数序列, 其中一个表示栈的push顺序, 判断另一个序列有没有可能是对应的POP序列。//下面使用一个栈来模拟这个操作过程, 栈顶元素等于出栈序列中的元素时出栈,不等于时入栈。//如果栈正常POP直到为空,说明序列是对应的POP序列返回真, 否则返回假/*1)pst 为已经初始化的栈2)input为输入栈序列3)output为需要判断的序列4)原创 2016-08-03 10:43:03 · 570 阅读 · 0 评论 -
C语言从stdin读取一行字符串的几种方法
C语言从stdin读取一行字符串的几种方法getsgets函数的头文件是,原型如下:char *gets(char *s);gets从stdin中读入一行内容到s指定的buffer中,当遇到换行符或EOF时读取结束。读取成功时,返回s地址;失败时返回null。需要注意的是,gets会将行末尾的'\n'字符或EOF替换成'\0',这样,gets读取的内转载 2016-07-07 17:22:28 · 8497 阅读 · 0 评论 -
循环队列
简单循环队列实现及测试#include #include #define QSIZE 10typedef struct Element{ int key; /*other field*/} Element;typedef struct Queue{ Element elem[QSIZE]; int front;原创 2016-05-18 12:07:56 · 257 阅读 · 0 评论 -
#if 和#ifdef的区别
今天也碰到这个问题,使用#ifdef xxx 想选择编译一段代码,最后发现#ifdef 并不判断条件真假,只看是否前面有define,下面转自 http://blog.csdn.net/zhangchiytu/article/details/7563329参加华为的面试,竟然才发现#if 和#ifdef是有区别的,绝得无地自容。赶紧整理一下 先看个例转载 2015-12-04 10:55:26 · 5510 阅读 · 0 评论 -
C语言可变参数的原理
转自:http://blog.csdn.net/bigloomy/article/details/6588354这个写得比较简单,明了,看了这个才真正理解了变长参数怎么实现的。在学习C语言的过程中我们可能很少会去写变参函数,印象中大学老师好像也没有提及过,但我发现变参函数的实现很巧妙,所以还是特地在此分析下变参函数的实现原理。无需标准C的支持,我们自己写代码来实现。先来看看转载 2015-11-05 20:54:14 · 357 阅读 · 0 评论 -
可变参数宏的原理及作用
有什么作用呢?主要是为了方便管理软件中的打印信息。我们在写代码或者修改bug时通常会将一些重要参数打印出来,方便我们debug,但是软件发行的时候通常我们不希望有这些打印,可变参数宏就可以在这里大显身手,当然也可以用分级控制(ERR、INFO/ WARNING DEBUG)的方式来管理,实现起来也不麻烦,只要在这个宏中添加判断语句就可以。但是一般我们调试问题,不会把所有打印都打开原创 2016-11-10 11:02:36 · 4021 阅读 · 0 评论