第六章 运动的诗章:运行时数据结构
a.out 它是assembler output 的缩写形式;
a.out 这个名字是unix “没什么理由,但我们就是这么做的”思维的一例;
超级块(superblock unix 文件系统中的基础数据结构)就是用下面这个神奇数字唯一标识的
#define PS_MAGIC 0x011954 这个数字式Berkeley fast 文件系统的实现者的生日;
在UNIX中,段标识一个二进制文件相关的内容块;
局部变量并不进入a.out,它们在运行时创建;
堆栈段有三个主要用途:1 为函数内部声明的局部变量提供存储空间;2 进行函数调用是,堆栈存储与此相关的一些维护信息; 3 堆栈也可以被用作暂时存储区;
以上小型测试程序,可以发现你的系统堆栈的大致位置;
C语言中所有函数在词法层次中都是位于最顶层的;
指针失去了有效性(引用不存在的东西),被称为“悬垂指针(dangling pointer)”;
唯一能用的auto的地方就是使你的声明更加清楚整齐;
goto 语句不能跳出C语言当前的函数(这也是longjmp 取名的由来,它可以跳得很远,甚至可以调到其他文件的函数中);
setjmp 和longjmp 在C++ 中变异为更为普通的异常处理机制“catch”和“throw”;
在unix中,当进程需要更多空间时,堆栈会自动生长。程序员可以想象堆栈是无限大的。这是unix胜过其他操作系统如MS-DOS的许多优势之一;
分享到:
相关推荐
C语言笔记, C编程
c语言笔记c语言笔记c语言笔记c语言笔记
C语言的网络编程笔记,包含网络编程常用函数的解释和实例代码
关于PIC单片机编程的文档,很不错的资料。
Linux系统编程笔记.pdfLinux系统编程笔记.pdfLinux系统编程笔记.pdfLinux系统编程笔记.pdf
C专家编程读书笔记(上).pdf
shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人笔记shell编程个人...
高手编程笔记 两则C语言技巧 高手编程笔记 两则C语言技巧 高手编程笔记 两则C语言技巧 高手编程笔记 两则C语言技巧
C语言学习笔记C语言学习笔记C语言学习笔记C语言学习笔记
linux socket网络编程笔记自己整理的。
笔记_C专家编程
读书笔记软件 编程笔记 学习笔记 不满你找我 可以直接复制doc的内容 效果一样 支持搜索
python编程笔记python编程笔记python编程笔记python编程笔记python编程笔记
ABEL PLD 编程笔记ABEL PLD 编程笔记ABEL PLD 编程笔记
SDK编程笔记_—_计时器篇SDK编程笔记_—_计时器篇SDK编程笔记_—_计时器篇SDK编程笔记_—_计时器篇SDK编程笔记_—_计时器篇SDK编程笔记_—_计时器篇SDK编程笔记_—_计时器篇SDK编程笔记_—_计时器篇SDK编程笔记_—_...
并发编程笔记
C语言学习笔记 C语言学习笔记 C语言学习笔记 C语言学习笔记
数控加工中心编程笔记.doc
linux系统 编程 开发 笔记 如果 大家 需要 可以 下载 看看 啊 希望 对你 linux 系统学习 有一定的 帮助 啊
Socket网络编程学习笔记Socket网络编程学习笔记