对于一些经典库函数的源代码认识以及分析1.
来源:互联网 发布:linux 发送icmp请求包 编辑:程序博客网 时间:2024/04/19 23:32
1.strcpy函数的实现
#inlcude<assert.h>
char *strcpy(char *dst,const char *src)
{
assert((dst!=NULL)&&(src!=NULL)); // assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条 出错信息,然后通过调用 abort 来终止程序运行。请看下面的程序清单badptr.c:
char *tmp= dst;
while((*dst++= *src++) ; //这里如果dst=‘\0’ 那么det的ASCLL码值为0 所以执行完判断就结束了,但是这里赋值就在判断里,所以完整的拷贝下来;
return tmp;
}
这里的assert很重要以后会有专门的一个博客来写它。
2.strlen函数的实现
#include<assert.h>
char *strlen(const char *det)
{
int count=0;
while(*det++)
{
count++
}
return count;
}
3.%c %u......的用法
%d 十进制有符号整数
%md,m指定的是输出字段的宽度,如果数据的位数小于m,则左端补以空格,若大于m,则
按实际位数输出,如:
printf("%4d,%4d",a,b)
若a=123,d=12345,则输出的结果为:
空格123,12345
%ld输出长整形格式
%u 十进制无符号整数
注意这个%u是输出无符号的十进制数。也就是计算机只识别二进制编码的原码,进行编译。 (因为是无符号编译,然后只可能是正数,然后正数的原码反码补码都相等)
%f 浮点数
%s 字符串
%c 单个字符
%p 指针的值
%e 指数形式的浮点数
%x, %x 无符号以十六进制表示的整数
%0 无符号以八进制表示的整数
%g 自动选择合适的表示法
今天眼睛太痛了,就写这么都 等下次写一个全面的。
- 对于一些经典库函数的源代码认识以及分析1.
- 对于嵌入式的一些认识
- 对于流媒体的一些认识
- FFmpeg的库函数源代码分析
- 对于UDP组播的一些认识
- 对于UDP组播的一些认识
- 对于Make工程管理器的一些认识
- 一些经典的C#源代码
- 对于树的一些认识。 一般的树。
- 我对于spring+hiberante+struts开发的一些认识
- 我对于谷歌关门的一些认识
- 对于高校计算机专业程序设计课程教学的一些认识
- 对于图片/Image预加载的一些认识
- 数据结构中串部分,对于一些问题的认识
- 对于新公司新项目的一些感触和认识
- 对于Hadoop和Spark的一些浅显认识
- 对于GetBuffer() 与 ReleaseBuffer() 的一些分析
- 对于GetBuffer() 与 ReleaseBuffer() 的一些分析
- acm UVA 227 Puzzle字符串处理
- HTML JavaScript 基础 (下)
- java解析String字符串xml 多级节点NodeList
- CentOS7.2 在GUI下关闭X Server
- Linux系统概念与体系(待修改)
- 对于一些经典库函数的源代码认识以及分析1.
- HDU2602Bone Collector(01背包)
- mysql多表联查
- navbar的一些坑
- C和Java中static修饰符的作用
- 如何查看Google官方文档
- 重写向&转发
- 初识指针
- 浅谈Java内存管理(二)