C预处理

预处理器执行宏替换、条件编译以及包含指定的文件。 #include指令:用于在编译期间把置顶文件的内容包含进当前文件中; #define指令:用任意字符序列替换一个标记; 1、文件包含 #include指令是一个将所有声明放在一起的好方法,它保证所有的源文件都具有相同的定义与变量(函数)声明。如...

2019-02-17 11:56:51

阅读数 40

评论数 0

二叉查找树(二)

The search tree data structure supports many dynamic-set operations, including SEARCH, MINIMUM, MAXIMUM, PREDECESSOR, SUCCESSOR, INSERT, and DELETE. ...

2018-11-25 23:00:44

阅读数 23

评论数 0

散列表(hash table)

A hash table generalizes the simpler notion of an ordinary array. Directly addressing into an ordinary array makes effective use of our ability to ex...

2018-11-11 21:33:24

阅读数 39

评论数 0

双链表(二)

#ifndef _MY_HLIST_H #define _MY_HLIST_H typedef struct hlist_node { struct hlist_node *next; /* next element */ struct hlist_node **pprev;...

2018-11-11 17:56:34

阅读数 36

评论数 0

IEEE 802.1Q

IEEE 802.1Q From Wikipedia, the free encyclopedia Jump to navigationJump to search IEEE 802.1Q, often referred to as Dot1q, is the networking stan...

2018-10-06 16:05:14

阅读数 222

评论数 0

Ethernet frame

Ethernet frame From Wikipedia, the free encyclopedia Jump to navigationJump to search A data unit on an Ethernet link transports an Ethernet frame...

2018-10-06 11:47:05

阅读数 209

评论数 0

epoll用法(转载)

https://www.cnblogs.com/lojunren/p/3856290.html https://blog.csdn.net/shenya1314/article/details/73691088  

2018-07-29 17:29:51

阅读数 71

评论数 0

编程珠玑番外篇-Q 协程的历史,现在和未来(转)

转自https://blog.youxu.info/2014/12/04/coroutine/编程珠玑番外篇-Q 协程的历史,现在和未来Comments本文原发于《程序员》2014年11月刊,发表时略有修改。 计算机科学是一门应用科学,几乎所有概念都是为了理解或解决实际问题而生的。协程 (Coro...

2018-06-20 22:37:28

阅读数 39

评论数 0

字序与位序

1、字序对于跨越多字节的程序对象,我们需要建立两个规则:1)这个对象的地址是什么;2)在内存中如何排列这些字节。在几乎所有的机器中,多字节对象都被存储为连续的字节序列,对象的地址为所用字节中最小的地址。排列对象的中字节有两个通用规则:小端法(little endian)和大端法(big endia...

2017-07-10 22:49:17

阅读数 235

评论数 0

C++静态库与动态库

C++静态库与动态库 这次分享的宗旨是——让大家学会创建与使用静态库、动态库,知道静态库与动态库的区别,知道使用的时候如何选择。这里不深入介绍静态库、动态库的底层格式,内存布局等,有兴趣的同学,推荐一本书《程序员的自我修养——链接、装载与库》。 什么是库 库是写好的现有的,成熟的,可...

2017-06-05 20:02:38

阅读数 127

评论数 0

网络协议(四)Socket编程之Unix

Unix域协议并不是一个实际的协议族,而是在单个主机上执行客户/服务器通信的一种方法。 1)Unix域套接字往往比通信两端位于同一主机的TCP套接字要快; 2)Unix域套接字可用于在同一主机上的不同进程之间传递描述符; 3)Unix域套接较新的实现把客户端的凭证(用户ID和组ID)提供给服...

2017-05-10 20:45:11

阅读数 159

评论数 0

网络协议(三)UDP

UDP(User Datagram Protocol):用户数据报协议,属于传输层协议。 1、udp是无连接不可靠的数据报协议。其具有以下特性: (1)无连接,即发送数据前不需要建立连接; (2)尽最大努力交付,即不保证可靠交付; (3)面向报文,DUP对应用层交下来的报文,既不合并,也不拆分,...

2017-04-14 20:56:17

阅读数 172

评论数 0

队列(双链表实现)

队列(queue)需要满足FIFO(First In First Out)的要求。在是使用双链表实现队列时,需要注意下面三种情况:1)队列为空;2)队列只有一个元素;3)队列有多个元素。进栈(Enqueue)出栈(Dequeue)#pragma once #ifndef _MY_QUEUE_H #...

2017-03-15 14:27:32

阅读数 268

评论数 0

C的多态

使用链表来放不同类型的对象。 #pragma once #ifndef _MY_TEST_H #define _MY_TEST_H #include "mylist.h" typedef void FunA(int iVal); typedef void FunB(ch...

2017-03-05 17:39:55

阅读数 173

评论数 0

结构

C语言提供两种结合不同类型的对象来创建数据类型的机制:结构(structure),用关键字struct声明,将多个对象集合到一个单元中;联合(union),用关键字union声明,允许用几种不同的类型来引用一个对象。 (1)结构(struct) 结构就是一个或多个变量的集合,这些变量可以为不同的...

2017-03-04 16:56:57

阅读数 158

评论数 0

数组

C语言中的数组是一种将标量聚集成更大数据类型的方式。 #include #include #include void PrintArray(int arr[], int n) { printf("array:\n"); for (int i = 0...

2017-03-03 21:30:40

阅读数 100

评论数 0

查找算法

#include #include // 二分查找法 int BinarySearch(int arr[], int n, int x) { int left = 0; int right = n - 1; int mid = 0; while (left <= right)...

2017-03-01 17:50:38

阅读数 110

评论数 0

排序算法

两个数的交换 void swap(int arr[], int i, int j) { int tmp; tmp = arr[i]; arr[i] = arr[j]; arr[j] = tmp; } // 当交换的两个数相等或与自身交换时,下面两种实现不能用 void swap(int arr[]...

2017-03-01 16:27:53

阅读数 116

评论数 0

网络协议(三)Socket编程之UDP

UDP(User Datagram Protocol):用户数据报协议 1)无连接; 2)尽最大努力交付; 3)面向报文。 #include    ssize_t recvfrom(int sockfd, void *buff, size_t nbytes, int flags, struc...

2017-02-28 21:56:09

阅读数 321

评论数 0

网络协议(二)Socket编程之TCP

TCP(Transmission Control Protocol):传输控制协议。 1)面向连接的运输层协议,点对点连接; 2)提供可靠交付; 3)提供全双工通信; 4)面向字节流。 TCP连接的建立和终止 1、TCP连接的建立 1)服务器必须准备好接受外来的连接。由socket、bind和li...

2017-02-28 21:08:07

阅读数 150

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭