书籍笔记
pa_miao_chi
这个作者很懒,什么都没留下…
展开
-
命名规则
命名规则(windows)命名规则1. 共性规则标示符应该见名知义,不可用汉语拼音开命名标示符长度应该符合最短长度最全解释的原则命名规则尽量与所采用的操作系统保持一致,windows中采用大小写混排的形式命名,linux 中则采用小写字母加下划线组成,不可将两种命名风格混用。程序中不要出现紧靠大小写区分的相似的标示符程序中尽量不要出现标示符相同的局部变量和全局变量,尽管作用域不同,原创 2017-04-07 09:45:20 · 256 阅读 · 0 评论 -
c/c++有益的建议
c/c++编程有益的建议1. 提高程序的效率时间效率:运行速度空间效率:程序占用内存或者外存的情况全局效率:站在整个系统的角度上考虑的效率局部效率:站在模块或者函数上考虑的效率规则:(1)不要一味追求程序的效率,应该在满足正确性,可靠性,健壮性,可读性等质量因素下,设法提高程序的效率(2)以提高程序的全局效率为主,局部效率为辅(3) 在优化程序的效率时,应当找出原创 2017-04-11 17:37:58 · 278 阅读 · 0 评论 -
类的继承与组合
类的继承与组合1.继承如果A 是基类,B 是派生类,那么B将继承A 的数据和函数class A{public: void fun1(void); void fun2(void);};class B{public: void func3(void); void func4(void);};int main(){ B b; b.fun1原创 2017-04-11 19:59:47 · 688 阅读 · 0 评论 -
程序的版式
1.空行在每个类声明之后,函数定义之后都要加空行class A{};//空格class B{};//空格void fun1(){}//空格void fun2(){}//空格 在一个函数体内,逻辑上密切相关的语句(例如if ......else......)之间不用加空行,其他地方加空行分隔。#includeusing namespa原创 2017-04-06 16:22:40 · 215 阅读 · 0 评论 -
文件的结构
1. 两个文件:头文件(保存程序的声明) 定义文件(保存程序的实现)2. 头文件:头文件的作用:通过头文件来调用库功能,有时源代码不方便向用户透露,只需要向用户提供头文件和二进制的库就可以,用户只需要按照头文件里的声明调用库函数,而不必关心接口是怎么实现的头文件能加强类型安全检查:如果某个函数或者接口在被实现或者使用的时候,方式与头文件中声明的方式原创 2017-04-06 15:55:59 · 237 阅读 · 0 评论 -
socker的基础知识(二)
“套接字”或者“插座”也是一种软件形式的抽象 ,用于表达两台机器之间连接的终端,对于一个特定的连接,每台机器上都有一个套接字,可以想象它们之间有一条虚拟的“线缆”,线缆的每一端都插入一个”套接字“或者”插座“里。应用层通过传输层进行数据通信时,TCP和UDP会遇到同时为多个应用程序提供并发服务的问题,多个TCP连接或者多个应用程序进程可能 需要通过同一个TCP协议端口传输数据,为了区别不同原创 2017-05-24 17:25:50 · 3621 阅读 · 0 评论 -
关于inline 函数的总结
关于一天一总结:1.关于C++inline 关键字,以下说法正确的是:DA 使用inline 关键字的函数会被编译其器在调用处展开B 头文件中可以包含inline函数的声明C.可以在同一个项目的不同源文件内定义函数名相同但是实现不同的inline函数D.定义在class声明里面的成员函数默认是inline函数E优先使用class 声明内定义的inline函数F优先使原创 2017-05-17 17:17:41 · 4512 阅读 · 0 评论 -
socket 的基础知识(一)
Socket 编程 计算机网络是相互连接的独立自主的计算机的集合,最简单的网络形式由两台计算机组成IP地址IP网络中每台主机都必须有唯一一个IP地址IP地址是一个逻辑地址因特网上的IP地址具有全球统一性32位,4个字节,常用点分十进制的格式表示 192.168.0.23协议:为进行网络中的数据交换(通信)而建立的规则,标准或者约定不同层有各原创 2017-05-19 18:25:01 · 380 阅读 · 0 评论 -
I/O 复用之select poll epoll 模式基础知识(1)
1.I/O复用I/O复用能使程序同时监听多个文件描述符,网络程序在下列情况下需要用到I/O技术(1)非阻塞connect 技术:客户端程序要处理多个socket(2)聊天室程序:客户端程序要同时处理用户输入和网络连接(3)TCP服务器要同时监听socket 和连接socket(4)回射服务器:服务器要同时处理TCP请求和UDP请求(5)xinetd服务器:服务器要同时监听多原创 2017-05-14 19:02:19 · 315 阅读 · 0 评论 -
《Linux C编程实战》中一些基础C语言知识 && 一些笔试面试题总结
C语言的数据类型:基本数据类型(整型,浮点类型,字符型),构造数据类型(数组,结构体,枚举,联合体),指针类型,空类型 整型:十六进制(0~9,A~F),八进制(0~7),十进制(0~9) 32位操作系统上:Int: 短整型(2),基本整型(4),长整型(4)原创 2017-06-12 16:20:33 · 1630 阅读 · 0 评论 -
STL空间配置器的剖析
本来昨天就能写好,晚上编辑器出了点问题,所以拖到今天重新写,呜呜呜呜~~~空间配置器的剖析是从《STL源码剖析》上看的,然后把它总结发到博客上,希望对大家有些帮助STL六大组件:空间配置器 容器 算法 迭代器 仿函数 容器适配器 关于SGI的标准空间配置器,std::allocator,不建议使用,主要原因是效率不佳,只是把::operat原创 2017-10-25 09:09:49 · 260 阅读 · 0 评论 -
const
const1. 使用const 提高函数的健壮性我们知道const常量,但是却不知道const更大的魅力:修饰函数的参数。返回值,甚至函数的定义体。const 是constant的缩写,是恒定不变的意思,被const修饰的东西都受到强制保护,可以预防意外的变动,能够提高函数的健壮性。(1) 用const 修饰函数的参数如果参数作为输出用,不论它是什么数据类型,也不论是指针传原创 2017-04-11 17:27:41 · 230 阅读 · 0 评论 -
类的构造函数,析构函数与赋值函数
类的构造函数,析构函数与赋值函数1.每个类只有一个析构函数和一个赋值函数,但是可以有多个构造函数(一个拷贝构造函数,其他为普通构造函数)2.对于任意一个类A,如果不想编写上类函数,c++编译器会自动生成四个缺省的函数A(void);A(const A &a);~A(void);A & operator=(const A &a);如果可以自动生成缺省函数,为什么还要程序员编写原创 2017-04-11 16:55:17 · 443 阅读 · 0 评论 -
函数内联
函数内联(inline)1. 用内联取代宏代码C++语言支持内联:为了提高函数的执行效率。在c程序中,可以用宏代码提高执行效率,宏代码本身不是函数,但是使用起来却像函数,预处理器用复制宏代码的方式代替函数调用,省去了参数压栈,生成汇编语言的CALL调用,返回参数,执行return 等过程,从而提高了速度,但是使用宏代码会产生意想不到的边际效应。#define MAX(a, b) (原创 2017-04-07 12:10:05 · 359 阅读 · 0 评论 -
常量
常量C语言中用#define 来定义常量(宏常量)C++中除了用#define 之外,还可以使用const 来定义常量(const常量)1. 使用目的:程序的可读性增强输入同样的数字或者字符串更加方便如果要进行修改,只需要修改定义的常量即可,操作方便2. const 与#define 的比较const 常量有数据类型,宏常量没有数据类型。编译器可以对const常原创 2017-04-07 10:16:42 · 212 阅读 · 0 评论 -
表达式与基本语句
运算符的优先级关于上面的优先级的问题:什么是位运算?什么是移位操作?答:程序中的所有数在计算机内存中都是以二进制存储的,位运算就是对整数在内存中的二进制位进行操作。按位与 :a&b通常用于二进制的取位操作,一个数与1& 的结果就是取二进制的最末位,这个可以用来判断一个整数的奇偶。二进制的最末位为0 为偶数,二进制的最末尾为1为奇数。相同原创 2017-04-07 10:04:20 · 241 阅读 · 0 评论 -
函数设计
函数设计两大巨头:返回值,参数C 语言中:两种传递方式:值传递与指针传递C++中:值传递,指针传递,引用传递1. 参数的规则参数的书写要完整void SetNum(int width, int height);void fun(void)//无参数的类型如果参数是指针,且仅做输入用,应该在类型前加const,防止该指针在函数体内被意外的修改(输入参数&&输出参数)原创 2017-04-07 10:48:32 · 486 阅读 · 0 评论 -
引用与指针的比较
指针与引用的比较int m;int &n = m;n是m的一个引用,m是被引用物。n就相当于m的一个别名,对n的操作就相当于对m的操作,n既不是m的拷贝,也不是指向m的指针,n就是m它自己。 C++中值传递,指针传递,引用传递的对比:#includeusing namespace std;v原创 2017-04-07 10:57:00 · 239 阅读 · 0 评论 -
内存管理
内存管理1. 内存分配的三种形式:(一) 从静态存储区分配内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在,全局变量,static 静态变量(二) 在栈上分配:在执行函数时,函数内部的局部变量的存储单元在栈上可以分配,函数结束时这些存储单元被自动释放,栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存有限。(三) 在堆上分配:动态内存分配,程序在原创 2017-04-07 11:08:23 · 236 阅读 · 0 评论 -
指针与数组的比较
指针与数组的比较数组:在静态存储区被创建(全局数组),在栈上被创建,数组名对应着一块内存,其地址和容量在生命期内保持不变,只有数组的内容可以更改。指针:可以指向任意类型的内存块,特征是可变,所以我们常用指针来操作动态内存,比数组灵活,但是更危险1. 修改内容但是编译却是成功的,编译器没有发现错误2.内容的复制与比较不能对数组名进行直接复制与比较,应该用strcpy(原创 2017-04-07 11:13:02 · 263 阅读 · 0 评论 -
malloc 和 free new 和delete
malloc和free ,new 和delete1. free 和delete 究竟把指针怎么了?答:他们只是把指针所指的内存释放掉了,并没有把指针本身怎么样1. 动态内存会被自动释放吗?不会。(一) 指针消亡了,并不表示它所指向的内存被自动释放(二) 内存被释放了,并不表示指针会消亡或者成为NULL;两步:free(p); p = NU原创 2017-04-07 11:15:55 · 212 阅读 · 0 评论 -
c++函数的高级特性
C++函数的高级特性C++中增加了重载(overload),内联(inline),const,virtual四种新机制。其中重载和内联机制既可以用于全局函数,也可以用于类的成员函数,const 和virtual 机制仅用于类的成员函数。1.函数重载C++采用重载的理由l 可以将语义,功能相似的几个函数用同一个名字表示,即函数重载。这样提高了函数的易用性。l 类的构造函数需要重载原创 2017-04-07 11:33:44 · 570 阅读 · 0 评论 -
成员函数的重载,覆盖,与隐藏
成员函数的重载,覆盖与隐藏1. 重载与覆盖成员函数被重载特征:1) 相同的范围内(在同一个类)2) 函数的名字相同3) 参数不同4) Virtual关键字可有可无覆盖是指派生类函数覆盖基类函数1) 不同的范围(分别位于派生类和基类中)2) 函数的名字相同3) 函数的参数相同4) 必须有关键字virtual#includeusing namespac原创 2017-04-07 11:39:54 · 264 阅读 · 0 评论 -
运算符重载
运算符重载1. 概念:C++中,可以用关键字operator加上运算符来表示函数,叫做运算符重载。两个复数相加Complex add(const complex &a, const complex &b);用运算符重载来表示:Complex operator+(const complex &a, const complex &b);运算符与普通函数在调用时不同之处在于:原创 2017-04-07 11:41:52 · 267 阅读 · 0 评论 -
《精通c#》笔记之初实.NET平台和如何创建简单的c#程序(一)
今天在微博上看到一个话题叫精致的程序媛,哈哈,希望自己慢慢也能成为精致的程序媛啦~努力✊先贴上我在知乎上找的一个链接:非常有用,快夸我是小天使!http://www.cnblogs.com/figure9/p/developer-reading-list.html#csharp 最近在学习c#,因为之前也没有接触过,所以在网上搜了一下,这本书适合c#入门,讲的都是比较基础的知识点,所以准备一边学习...原创 2018-03-16 15:11:08 · 330 阅读 · 0 评论