经手的项目经历为期半年的长跑终于要上最终版了,原计划于今天正式对外发布的,但由于测试时间安排不够,测试中产生不少问题,直至今天这个节骨眼上还有问题尚未解决,于是申请延期3天,甚感愧疚,虽然分配的时间少是一方面,但自己在紧急情况下的应变能力确实有待加强,时间越紧越没底,越没底就越慌张,很多问题没有静下心来仔细分析,导致本来很容易解决的问题因为慌张而走进了死胡同。
本博客运行在Windows服务器上,曾因为Windows不支持Wordpress内置的PHP下的mail函数,一度无法实现评论邮件回复通知功能,导致本博客的留言者无法知道自己的评论是否被回复,很不利于博主以及到访者之间的交流,后来花了不少时间研究如果让Windows主机实现邮件通知功能,于是便有了《让Windows服务器上的WordPress实现评论邮件通知功能》这篇日志,算是完美地解决了这一问题。
想必大家使用Ubuntu或其他版本Linux系统上网的时候,常常遇到这样一种情况,如果电脑同时连着有线网络跟无线(Wifi)网络,系统会默认(优先)使用有线网络,即使用有线网络的网关作为默认路由。这种情况下,如果无线(Wifi)能上外网,而有线却只能上内网,则系统因为默认走有线路由而无法上外网,唯一便捷的解决办法便是断开有线。然而在某些情况下,我们既需要连接无法上外网的有线(如与有线局域网内的他人共享文件),又需要通过无线(Wifi)上外网,这样就需要更改系统的默认路由了。
我们知道,一个程序至少有一个进程,而一个进程至少包含一个线程,对于单进程单线程程序,要想完成多任务,一定是单步顺序执行的,即多个任务无法并发执行,一个任务的开始需要等待前一个任务的结束,对于并发性要求极高的服务器程序来说,单线程显然无法高效地处理任务。这时我们可以考虑采用多进程或多线程机制来封装程序。
C语言中的内存分配函数主要有malloc、calloc、realloc、free等,关于他们的功能、区别及用法想必不是每个程序员都掌握得很好的,本人也不例外。要找到答案,man手册必然是最权威的资料,下面便是man手册中关于内存分配函数介绍的中文译本。
一、主要功能:分配和释放动态内存。
二、函数声明:
1、栈是限定仅在表尾进行插入或删除操作的线性表。表尾端称为栈顶,表头端称为栈底。栈的修改是是按照后进先出的原则进行的,因此,栈又成为后进先出(last in first out)的线性表(简称LIFO结构)。
2、当栈顶指针跟栈底指针相同时说明栈空了,因此非空栈中的栈顶指针始终在栈顶元素的下一个位置上。
3、以下是栈的顺序存储表示以及基本操作的算法描述:
1、线性表的链式存储结构的特点是用一组任意的存储但愿存储线性表的数据元素。它包括两个域:其中存储数据信息的域称为数据域,存储直接后继存储位置的域称为指针域。
2、循环链表的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。循环链表的操作和线性链表基本一致,差别之处仅在于算法中的循环条件不再是p或p->next是否为空,而是它们是否等于头指针。
3、双向链表的结点有两个指针域,其中一个指向直接后继,另一个指向直接前驱。
文章分类 : C++, C++Primer笔记
1、构造函数不能声明为const。
2、与其他函数不同的是,构造函数也可以包含一个构造函数初始化列表。
3、构造函数初始化列表以一个冒号开始,接着是一个以逗号分隔的数据成员列表,每个数据成员后面跟一个放在圆括号中的初始化式。
4、内置或复合类型的成员的初始值依赖于对象的作用域:在局部作用域中这些成员不被初始化,而在全局作用域中它们被初始化为0。
文章分类 : C++, C++Primer笔记
1、每个类可没有成员,也可以定义多个成员,成员可以是数据、函数或者类型别名。
2、创建一个类类型变量时,编译器会自动使用一个构造函数来初始化该对象,构造函数是一个特殊的、与类同名的成员函数,用于给每个数据成员设置适当的初始值。
3、在类内部,声明成员函数是必需的,而定义成员函数则是可选的,在类内部定义的函数默认为inline。