四时宝库

程序员的知识宝库

C++|引入引用的合理性思考(c++引用是怎么实现的)

编译语言的翻译程序(编译器或解释器)总是按语法的规则来解释代码的,编程语言的设计者对语法规则的设计总有其合理性。C没有引用,C++试图做为C的升级版,引入引用有什么合理性?

1 引用的常量性质

引用具有常量性质,只允许有一次机会指向一个内存空间,避免了指针变量的东指西指引起的潜在问题。同时,引用不能指向NULL,也避免了指针指向NULL的一些问题。当然,也有一些场合是需要指向NULL的,这也是指针的价值所在,还有,指针也可以指向堆空间,当然,还可以应用在链式存储场合。引用是类型安全的,而指针不是 (引用比指针多了类型检查)。

高性能服务器程序框架 - 有限状态机

有限状态机是逻辑单元内部的一种高效编程方法。

有的应用层协议头部包含数据包类型字段,每种类型可以映射为逻辑单元的一种执行状态,服务器可以根据它来编写相应的处理逻辑,代码如下:


STATE_MACHINE(Packahe _pack)
{
    PackageType _type = _pack.GetType();
    switch (_type)
    {
    case type_A:
        process_package_A(_pack);
        break;
    case type_B:
        process_package_B(_pack);
        break;    
    default:
        break;
    }
}

C语言为什么比其他语言更依赖库?(c语言为什么用的人很少)


学过C语言的童鞋都知道,正常的C程序文件后缀是.c,那么后缀为.h的是什么文件?其实这是C语言也包括C++,共同使用的头文件。库就是头文件(head file)的集合。

技术博客:深入理解C语言断言的使用

目录

  1. 引言
  2. 什么是断言
  3. 断言的作用

Linux网络编程“惊群”问题总结(linux惊群效应详解)

1、前言

数据结构-图(图的基本实现C++)(数据结构关于图的算法)


?一、图的概念

图是一种比较复杂的非线性数据结构

图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。

图区分有向图和无向图

1、无向图(Undirected graphs)

数据结构-栈-手打代码(educoder数据结构栈)

前言

  • 数据结构是计算机学科的基础,而类链表结构又是数据结构最基本的结构,包括List、stack、queue等;
  • 然而,大部分同学甚至连一个可用的List都写不出来;
  • 故,下面手打了一份栈实现,供参考;

Linux网络编程相关高级I/O函数 - 用于创建文件描述符的函数

用于创建文件描述符的函数

  • pipe函数

pipe函数可用于创建一个管道,以实现进程间通信,pipe函数定义如下:

数据结构-线性表之顺序表(数据结构线性表顺序存储)

线性表

内存池的原理及实现(内存池的原理及实现过程)

在软件开发中,有些对象使用非常频繁,那么我们可以预先在堆中实例化一些对象,我们把维护这些对象的结构叫“内存池”。在需要用的时候,直接从内存池中拿,而不用重新实例化,在要销毁的时候,不是直接free/delete,而是返还给内存池。

把那些常用的对象存在内存池中,就不用频繁的分配/回收内存,可以相对减少内存碎片,更重要的是实例化这样的对象更快,回收也更快。当内存池中的对象不够用的时候就扩容。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接