libevent幾個結構體的理解

2021-10-02 14:27:48 字數 771 閱讀 6584

struct event base

struct event_base 

;

這裡要注意struct event_list **activequeues;為什麼用雙指標,這是因為很多事件的優先順序一致,所以用佇列陣列來存放,這樣導致有些事件不能第一時間處理

struct event 

;

這裡主要理解幾個

tailq_entry

因為乙個event可能在

struct event_list eventqueue;//這個是個雙向佇列的頭佇列

這個佇列裡面,也有可能在struct event_list **activequeues;佇列裡面

struct pollop 

;

這個結構體比較重要的就是int *idxplus1_by_fd這個,仔細看看它的空間記憶體分配方式

if

(ev->ev_fd >= pop->fd_count)

pop->idxplus1_by_fd = tmp_idxplus1_by_fd;

memset

(pop->idxplus1_by_fd + pop->fd_count,0,

sizeof

(int)*

(new_count - pop->fd_count));

pop->fd_count = new_count;

}

常用幾個結構體

nsrange nsrange的定義 typedef struct nsrange nsrange typedef nsrange nsrangepointer ns inline nsrange nsmakerange nsuinteger loc,nsuinteger len nsstring ...

Objective C常用的幾個結構體

nsrange 表示範圍 location length 初始化 nsrange range nsrange nsmakerange 4,5 nsstring str nsstringfromrange range 轉成nsstring nssize等同於 cgsize 有兩個值組成 weight表...

結構體 結構體變數 結構體指標的基本問題

注意 以下都是32位的系統 一 結構體定義 第乙個問題 下面兩個 struct human struct human 這兩個結構體是否相同?答案 不一樣 原因 根據c語言結構體的機制,我們為結構體變數分配乙個連續空間時,總是以結構體中最大位元組長度型別的整數倍分配。第乙個的記憶體分布圖 length...