摘要: 一、内存管理(续) 每个进程都有自己独立的4G的虚拟地址空间。 冯.诺伊曼体系结构 哈佛体系结构 section 代码段 只读数据段 栈段 举例说明 数据所属的段。 代码参见 memory.c 如何获取进程自己的pid? getpid(2) #include #include pid_t getpid(void); 功能:获取进程的id 参数: void 返回值: pi... 阅读全文
posted @ 2017-10-25 21:43 Kernel001 阅读(732) 评论(0) 推荐(0) 编辑
摘要: 一、程序中的错误处理 在系统中定义了一个全局变量errno。在这个全局变量中存放着系统调用或者库函数出错的信息(错误编号)。然后根据错误编号获取错误信息。 举例说明: 打开一个文件,如果这个文件不存在,查看错误信息。 代码参见 file.c perror(3) strerror(3) #include void perror(const char *s); 功能:输出一条系统的错误消... 阅读全文
posted @ 2017-10-25 21:41 Kernel001 阅读(998) 评论(0) 推荐(0) 编辑
摘要: 一、为类型命名别名 struct node{ int num; struct node *next; }; typedef struct node node_t; node_t n; 使用typedef为类型定义别名。 三个步骤: 1、定义一个类型的变量或常量 2、在第一步的基础上,在最前边加上typedef关键字,这时候,原来的变量或常量就是类型的别名(新类型)。 3、使用新... 阅读全文
posted @ 2017-10-25 21:39 Kernel001 阅读(541) 评论(0) 推荐(0) 编辑
摘要: 一、大型软件组织 定义规则,规则就是协议。用户和中介的接口。 软件开发的过程: 定义规则,定义协议。软件为用户提供的功能。 在C语言中使用接口实现。接口就是函数。 两种用户 函数的使用者 函数的实现者 你要站在函数的实现者角度考虑函数。 1、函数要完成的功能 2、需要传递给函数的参数 3、函数的返回值的类型 附加信息 作者: 时间: 将协议的每个部分都要实现,在C语言中如何来表示协议... 阅读全文
posted @ 2017-10-25 21:37 Kernel001 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 一、计算机的框架 什么是操作系统?(汽车) 加油系统 油门 用户跟加油子系统交互的窗口。(接口) 方向系统 方向盘 用户跟方向系统的交互接口。 导航系统 。。。 汽车的操作系统有很多的子系统来完成。这些子系统互相协调工作,达到用户的目的。操作简练、效率高、安全性比较高...。 接口 多个子系统 每个子系统负责单一的工作。 操作环境 驾驶员位置 是不是驾驶员直... 阅读全文
posted @ 2017-10-25 21:35 Kernel001 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 二十三 运行时的类型信息 1 typeid运算符 #include typeid(类型/对象) 1)返回typeinfo的对象,用于描述类型信息。 2)在typeinfo类中包含了一个name()成员函数返回字符串形式类型信息。 3)typeinfo类支持"=="、"!="的操作符重载,可以直接进行类型之间的比较,如果类型之间存在多态的继承关系,还可以利用多态的特性确定实际的对象类型。 eg:... 阅读全文
posted @ 2017-10-25 17:06 Kernel001 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 二十二 多态(Polymorphic) 1 函数重写(虚函数覆盖)、多态概念 如果将基类中的某个成员函数声明为虚函数,那么子类与其具有相同原型的成员函数就也将是虚函数,并且对基类中的版本形成覆盖。 这时,通过指向子类对象的基类指针,或者引用子类对象的基类引用,调用该虚函数,实际被执行的将是子类中覆盖版本,而不是基类中的原始版本,这种语法现象称为多态. eg: class Bas... 阅读全文
posted @ 2017-10-25 17:05 Kernel001 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 二十一 继承(Inheritance) ... 5 子类的构造函数和析构函数 5.1 子类的构造函数 1)如果子类构造函数没有显式指明基类子对象的初始化方式,那么该子对象将以无参方式被初始化。 2)如果希望基类子对象以有参的方式被初始化,必须在子类构造函数的初始化表中显式指明。 class 子类:public 基类{ 子类(...):基类(基类子对象构造实参表){} }; 3)... 阅读全文
posted @ 2017-10-25 17:03 Kernel001 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 二十 操作符重载 5 函数操作符"()" 功能:让对象当做函数来使用 注:对参数的个数、返回类型没有限制 eg: class A{...}; A a; //a.operator()(100,200) a(100,200); 6 下标操作符"[]" 功能:让对象可以当做数组一样去使用 注:非常对象返回左值,常对象返回右值 eg: string s("hello"); //s.opera... 阅读全文
posted @ 2017-10-25 17:02 Kernel001 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 二十 操作符重载 eg:复数x+yi 3+4i (1+2i) + (3+4i) = 4+6i 1 双目操作符(L # R) 1.1 运算类的双目操作符:+ - * / -->左右操作数可以是左值也可以是右值 -->表达式结果是右值 1)成员函数形式 L#R的表达式会被编译器自动处理为L.operator#(R)的成员函数调用,该函数的返回值即为表达式的值。 2)全局函数形式 L#R的表达式会... 阅读全文
posted @ 2017-10-25 16:51 Kernel001 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 十七 拷贝构造和拷贝赋值 1 浅拷贝和深拷贝 1)如果一个类中包含指针形式的成员变量,缺省的拷贝构造函数只是复制了指针变量的本身,而没有复制指针所指向的内容,这种拷贝方式称为浅拷贝。 2)浅拷贝将导致不同对象之间的数据共享,如果数据存放在堆区,可能会在析构时引发"double free"异常,因此就需要自己定义一个支持复制指针指向的内容的拷贝构造函数,即深拷贝。 2 在C++类中会提供一个缺省... 阅读全文
posted @ 2017-10-25 16:50 Kernel001 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 十四 构造函数和初始化表 ... 5 初始化表 1)语法形式 class 类名{ 类名(形参表):成员变量1(初值),...{} }; 2)必须要使用初始化表的场景 --》如果有类 类型的成员变量,而该类又没有无参构造函数,则必须通过初始化表来初始化该成员变量。 --》类中包含"const"和“引用”成员变量,必须在初始化表中显式的初始化。 注:成员变量的初始化顺序由声明顺序决... 阅读全文
posted @ 2017-10-25 16:35 Kernel001 阅读(300) 评论(0) 推荐(0) 编辑
摘要: 十三 类的定义与实例化 1 类的一般形式 class/struct 类名:继承表{ 访问控制限定符: 类名(形参表):初始化表{}//构造函数 ~类名(void){}//析构函数 返回类型 函数名(形参表){}//成员函数 数据类型 变量名;//成员变量 }; 2 访问控制限定符 1)public 公有成员,类内部和外部都可以访问的成员 2)private 私... 阅读全文
posted @ 2017-10-25 16:20 Kernel001 阅读(1129) 评论(0) 推荐(0) 编辑
摘要: 十 C++的引用(Reference) 1 2 3 引用型函数参数 1)将引用用于函数的参数,可以修改实参变量的值,同时也能减小函数调用的开销。 2)引用参数有可能意外修饰实参的值,如果不希望修改实参变量本身,可以将其定义为常引用,提高传参效率的同时还可以接收常量型的实参。 4 引用型函数返回值 1)可以将函数返回类型声明为引用,避免函数返回值所带来的开销。 2)一个函数返回类型被声明为... 阅读全文
posted @ 2017-10-25 16:09 Kernel001 阅读(821) 评论(0) 推荐(0) 编辑
摘要: 六 C++的布尔类型 1 bool类型是C++中基本类型,专门表示逻辑值:true/false 2 bool在内存上占一个字节:1表示true,0表示false 3 bool类型可以接收任意类型和表达式的结果,其值非0则为true,值为0则为false 七 操作符别名(了解) && --》 and || --》 or { --》 ... 八 C++函数 1 函数重载 strcpy(... 阅读全文
posted @ 2017-10-25 16:03 Kernel001 阅读(537) 评论(0) 推荐(0) 编辑
摘要: 一 C++概述 1 C++历史背景 1)C++的江湖地位 jave C C++ C# python 2)C++之父:Bjarne Stroustrup(1950--) 1979,Cpre,为C语言增加类的机制 1983,Bjarne发布了全新的编程语言C with Class 1985,CFront1.0《The C++ programming Language》 3)C++发展过程 19... 阅读全文
posted @ 2017-10-25 15:59 Kernel001 阅读(280) 评论(0) 推荐(0) 编辑
摘要: 1. proc中如何使用plsql 1.1 使用plsql的语法 exec sql execute begin /* 相当于plsql的匿名块 */ end; end-exec; 在预编译时,需要加如下两个选项: sqlcheck = semantics userid = 用户名/密码:在预编译... 阅读全文
posted @ 2017-10-23 09:04 Kernel001 阅读(1046) 评论(0) 推荐(0) 编辑
摘要: 模板和标准模板库(STL) 一、模板的起源 变量四要素:类型、名称、值、地址 数据类型:存储形式、编码格式、运算规则、访问方式 int a = 0; // 补码 float b = 0; // 阶码 char c = 'A'; // ASCII char_t d = 'A'; // UCS-4 int i = 0; i++; cout learn (...); 静态类型:由编译器在编译源代码的过... 阅读全文
posted @ 2017-10-23 09:00 Kernel001 阅读(309) 评论(0) 推荐(0) 编辑
摘要: PROC 主要内容: 1) proc简介 2) proc程序的开发过程 3) 宿主变量和指示变量 4) 嵌入sql语句 5) 连接数据库 6) 错误处理 7) 数据的存取更新操作 8) 动态sql ----------------------------- 1.什么是pro程序? 1.1 概念 在过程化的编程语言中嵌入sql语句而开发出的应用程序,叫pro程序。 在通用的编程... 阅读全文
posted @ 2017-10-23 08:54 Kernel001 阅读(1739) 评论(0) 推荐(0) 编辑
摘要: 回顾: 1.record类型 定义record类型,声明变量,保存s_dept表中id = 31部门信息 2.动态SQL 使用动态SQL语句,删除 testdsql 表中指定id 信息 1.游标: 1.1概念: 游标是映射在结果集中一行数据的位置指针或位置实体。 1.2作用: 处理多行结果集! 用户 阅读全文
posted @ 2017-10-21 17:39 Kernel001 阅读(339) 评论(0) 推荐(0) 编辑