不去想
错过的风景
摘要: 函数介绍来自:http://ganquan.info/standard-c/函数名:freopen功能: 替换一个流用法: FILE *freopen(char *filename, char *type, FILE *stream); 1 FILE * __cdecl _tfreopen ( 2 ... 阅读全文
posted @ 2014-04-22 22:44 彼岸在脚下 阅读(607) 评论(0) 推荐(0) 编辑
摘要: 转自:http://www.cnblogs.com/chinazhangjie/archive/2012/08/18/2645475.html一、基础部分1.1 什么是可变长参数可变长参数:顾名思义,就是函数的参数长度(数量)是可变的。比如 C 语言的 printf 系列的(格式化输入输出等)函数,... 阅读全文
posted @ 2014-04-22 16:05 彼岸在脚下 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 花了点时间把园子弄得好看了点,现在继续。函数名:putc功能: 输出一字符到指定流中用法: intputc(int ch, FILE *stream);#define _putc_lk(_c,_stream) (--(_stream)->_cnt >= 0 ? 0xff & (*(_strea... 阅读全文
posted @ 2014-04-22 00:14 彼岸在脚下 阅读(771) 评论(6) 推荐(0) 编辑
摘要: 接前文。再来看看getc和ungetc的实现。在看这两个函数的实现之前,我们先来想一想这两个函数分别需要做的工作。int getc(FILE *stream)说明:函数getc从stream指向的输入流中读取下一个字符(如果有的话),并把它由unsigned char类型转换为int类型,并且流的相... 阅读全文
posted @ 2014-04-11 19:11 彼岸在脚下 阅读(2278) 评论(0) 推荐(1) 编辑
摘要: 其他的库文件看起来没有什么实现层面的知识可以探究的,所以,直接来看stdio.h。1.茶余饭后的杂谈,有趣的历史在过去的几十年中,独立于设备的输入输出模型得到了飞速的发展,标准C从这个改善的模型中获益颇丰。输入输出模块在20世纪60年代早期,FORTRAN IV被认为是独立于机器的语言。但是如果不作任何改动,根本不可能在各种计算机体系结构中移动FORTRAN IV程序。可移植性的主要障碍是输入输出领域。在FORTRAN IV中,可以对FORTRAN IV代码中间的I/O语句中对正在通信的设备进行命名。CARD 和 INPUT TAPE就不一样。之后,逐渐发展到使用逻辑单元号(LUN)来代替具体 阅读全文
posted @ 2014-04-09 23:32 彼岸在脚下 阅读(6900) 评论(2) 推荐(3) 编辑
摘要: 默默觉得原来的阅读笔记的名字太土了,改了个名字,叫做走进C标准库。自己就是菜鸟一只,第一次具体看C标准库,文章参杂了对《the standard C library》的阅读和对源码的一些个人浅显理解,自己记录一下,日后有机会来看可能有另一番感悟吧。assert.h assert宏定义的两种表达方式:... 阅读全文
posted @ 2014-04-08 21:19 彼岸在脚下 阅读(678) 评论(2) 推荐(0) 编辑
摘要: C99中关于编译器内置宏的信息6.10.8 Predefined macro namesThe rule that these macros may not be redefined or undefined reduces the complexity of the name space that... 阅读全文
posted @ 2014-04-08 15:42 彼岸在脚下 阅读(570) 评论(0) 推荐(0) 编辑
摘要: 1. 指针1.1 自增符的使用 ++*p;//p指向的内容加一 (*p)++; //p指向的内容加一 *p++;//p本身自增 *++p; //p本身自增 因为诸如*和++这样的一元运算符在表达式求值时按从右到左的顺序和运算分量结合。1.2 指针运算比数组下标运算快1.3数组名 一个数组名即该数组第0个元素的位置,所以赋值语句pa = &a[0]等价于pa = a1.4 数组下标求值 在求数组元素a[i]的值时,C语言实际上先将其转换成*(a + i)的形式再求值 而对于指针pa而言,pa[i] 等价于 *(pa + i)1.5数组名与指向数组首地址的指针的区别 前者非变量,... 阅读全文
posted @ 2014-04-08 10:14 彼岸在脚下 阅读(573) 评论(2) 推荐(0) 编辑
摘要: 读了一遍著名的《the C programming language》,果然如听说的一样,讲解基础透彻,案例简单典型,确实自己C语言还有很多细节点不是很清楚。总结一下阅读的收获(部分原书不清晰的知识点在网络上搜索后补充,引用出处忘记了,原作者看到可联系添加)1.声明1.1 变量声明 在C语言中,所有变量都必须先说明后使用,说明通常放在函数开始处的可执行语句之前。1.2 外部变量 在每一个函数中都要对所要访问的外部变量进行声明。声明所使用的外部变量的类型,在声明时可以用extern显式说明,也可以通过上下文隐式说明。如果外部变量的定义在源文件中出现在使用它的函数之前,则extern声明可以省.. 阅读全文
posted @ 2014-04-07 11:26 彼岸在脚下 阅读(1998) 评论(8) 推荐(0) 编辑
摘要: 关于结构体的字节对齐是什么,就不赘述,再此附上一篇文章,介绍字节对齐:http://www.linuxsong.org/2010/09/c-byte-alignment/这里的结构体字节对齐的数据类型都是基本数据类型,如果结构体的定义中含有结构体成员呢?网上有很多人写博客谈到这个问题,都认为该结构体成员应该被看做一个整体,按照整体的字节数来进行字节对齐,选择首地址。但是经过测试,这种说法是不对的。 1 struct s1{ 2 char c1; 3 char c2; 4 char c3; 5 char c4; 6 }; 7 8 struct s2{ 9 ch... 阅读全文
posted @ 2014-04-04 18:26 彼岸在脚下 阅读(4680) 评论(5) 推荐(2) 编辑