摘要:
第一章 快速上手1. 从逻辑上删除一段C代码,最好的办法是使用#if指令 #if 0 Statement #endif2. 其他语言中,无返回值的函数称为过程(procedure)3. 数组做参数的时候是以引用(reference)的方式传递的,即地址传递。在函数中对形式参数的任何修改都不会影响实参,同时形式参数返回时丢失。4. 字符串是已一串NUL字节结尾的字符。NULL作为字符串终止符,它本身并不被看作字符的一部分。 NUL表示字符串结尾,NULL表示空指针。 第二章 基本概念1. 三字母词:几个字符组合起来表示另外一个字符 ??( [ ??< { ??= ... 阅读全文
摘要:
以COM为扩展名的文件的特点如下: 1.程序只能设置一个段,且不建立堆栈段; 2.程序的长度必须少于64K字节; 3.程序必须预留100H空间,开始处是一条可执行指令; 4.程序被装入的起始标号必须由END语句说明开始地址; 5.程序中的子程序必须具有近程属性(NEAR); 6.如果COM文件是由几个不同的目标模块链接生成的,要求所有目标模块具有同一代码段名和类别名(CLASS),且赋予公共属性(PUBLIC),而主模块应具有100H的入口指针并优先连接。 EXE文件的结构特点如下: 1.程序允许建立若干不同名的代码段、数据段、堆栈段或附加段。 2.程序的长度... 阅读全文
摘要:
内存对齐一、内存对齐 所谓内存对齐,是指不同类型的数据按照一定的规则,进行存储的方式。 对齐原因: 1、平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据(内存对齐),否则抛出硬件异常。 2、性能原因:数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次内存访问(奇偶地址);而对齐的内存访问仅需要一次访问二、对齐方法 struct Struct1 { doubledata1; int data2; chardata3; }; 对Struct1进... 阅读全文
摘要:
操作符/运算符优先级优先级操作符描述用法示例目结果类型结合性控制求值顺序1( )聚组(expRession) 与表达式相同N/A否1( )函数调用Rexp(Rexp,..,Rexp) RexpL-R否1[ ]下标引用Rexp[Rexp] LexpL-R否1.访问结构成员Lexp.memeber LexpL-R否1->访问结指针成员Rexp->member LexpL-R否2++后缀自增Lexp++单目RexpL-R否2--后缀自减Lexp--单目RexpL-R否2!逻辑非!Rexp单目RexpR-L否2~按位取反~Rexp单目RexpR-L否2+单目,表示正值+Rexp单目Re.. 阅读全文