发现自己博客很久没有更新了,贴篇几个月前的读书笔记。C专家编程,一本不错的介绍C语言的书,适合对C有初期了解的人读。
static: 变量在各个调用阶段保持延续性,函数只对该文件可见。
extern: 函数全局可见,变量表示该变量在其他地方定义。
gets函数不检查缓冲区的空间,多读取的字符会重写入堆栈,可能导致堆栈错误。
函数中的变量是在堆栈中分配的,当函数调用结束时会自动销毁。
int (*a)[10]--指向一个数组的指针,数组中元素是10;
int *a[10]--整型指针,指向一个10个元素的数组。
char* const *(*next)()--next是一个指针,指向一个函数,改函数返回一个指针,该指针指向一个类型为char的常量指针。
#define可被其他类型符修饰,typedef不能被修饰。
指针的使用:先去的指针的值,在用去的的值去访问对应地址的值,数组名访问是直接访问值,数组名是只读的,
定义指针时编译器不为指针所指对象分配空间,值分配指针本身的空间,但是字符串常量除外char *p = “abc”,编译通过,int *p = 10,编译不通过,指针没有经过初始化不能直接使用。
动态链接在程序运行时会查找相应的ABI,装载ABI进程序,因此程序会减小,但是运行速度回变慢,所有程序共享动态链接库,又称共享库;
EPC文件由段组成:
RSS段:声明但未初始化的变量
数据段:初始化了变量
文本段:程序指令区
堆栈段:保存局部变量,临时数据,传递到函数中的参数
堆:动态内存分配区,位于数据段中,堆中的内存分配容易产生内存碎片
活动记录:记录函数调用过程的记录。
cache存储器每次读取内存中的一行数据(16或者32字节);
cache块数据,一般是32字节;
cache与内存数据一致策略:全写法,回写法;
malloc返回的内存大小实际都是2的n次方。
总线错误:数据未对齐读写造成的错误;
内存对齐:数据项只能存储在地址是数据项大小的整数倍的内存位置上,与对齐有关的额外逻辑会使整个内
存系统更大更慢。由于内存对齐,Cache访问才能局限子啊一个一行或者单个页面中;
段错误:内存单元访问的异常,通常是由于指针的使用不合法所致。
数组是以指针的形式传递到函数中的,所以在函数中数组的访问实际是按照指针的规则进行访问的。
相关推荐
C语言学习笔记C语言学习笔记C语言学习笔记C语言学习笔记
C语言学习笔记 C语言学习笔记 C语言学习笔记 C语言学习笔记
数据结构(C语言描述)学习笔记、学习文档 数据结构(C语言描述)学习笔记、学习文档 数据结构(C语言描述)学习笔记、学习文档 数据结构(C语言描述)学习笔记、学习文档 数据结构(C语言描述)学习笔记、学习文档 ...
编程学习笔记(数据库,C#)编程学习笔记(数据库,C#)编程学习笔记(数据库,C#)编程学习笔记(数据库,C#)编程学习笔记(数据库,C#)编程学习笔记(数据库,C#)编程学习笔记(数据库,C#)编程学习笔记(数据库,C#)...
Socket网络编程学习笔记Socket网络编程学习笔记
读书笔记软件 编程笔记 学习笔记 不满你找我 可以直接复制doc的内容 效果一样 支持搜索
Java并发编程学习笔记
c语言学习笔记c语言学习笔记c语言学习笔记c语言学习笔记c语言学习笔记c语言学习笔记c语言学习笔记
asp.net2.0网络编程学习笔记源代码 很多实例
编程学习笔记,帮助对于0基础的人快速入门的笔记,适合新手学习。
win32编程学习笔记
书 名: JSP网络编程学习 封面 笔记 作 者:傅进勇 李波 出版社: 电子工业出版社 出版时间: 2008 全书内容分为7篇,共23章,第一篇为“JSP应用开发基础”,主要讲述JSP技术背景情况、JSP技术的基本原理及开发...
Socket网络编程学习笔记 C# yuanma
C专家编程读书笔记(上).pdf
louts notes编程学习笔记 louts notes编程学习笔记
C网络编程学习笔记(ACE).pdf
c程序设计语言学习摘录笔记。方便复习和查询。
Socket网络编程学习笔记(4) C# yuanma