經驗分享 3個C 實用技巧

2021-08-04 02:17:27 字數 780 閱讀 6356

一、柔性陣列(長度是0的陣列)

技巧:定義在結構體最後面,佔位,用於訪問轉換之後對應位置的資料,通用用於流式資料結構化過程。例如:訊息結構是16位長度,後跟資料,但資料是不定長的,**如下:

typedef struct

msg_head_t;

int main()

; msg_head_t* msg = (msg_head_t*)data;

cout << msg->len << endl;

cout << msg->data[0] << endl;

cout << msg->data[1] << endl;

cout << msg->data << endl;

return 0;

}輸出:

160a

babc

二、長度補整,通長用於計算最小需要對齊的緩衝區, 或加密補全,或記憶體對映計算位址範圍等

技巧:指令取模效能有發,位操作非常高效,先加a-1,這樣剛好時不增長,其他情況向上加1。a-1低位都是1,取反為0,高位為1,再與操作,則相當於去除餘數。

#define align(d, a)     (((d) + (a - 1)) & ~(a - 1))

三、通過0位址,計算成員位址偏移量

#include using namespace std;

struct a

;int main()

UE 實用技巧分享

無意中登入了ultraedit 官網,發現有幾張狂拽酷炫的 發現原來 ue 功能如此強大,簡單學會這幾個小技巧,課大大提公升工作效率,話不多說,上圖 column mode 列模式 以下是 ue 的一些使用技巧 列模式 alt c 使用列模式在文件中的任何位置沿y軸進行直觀編輯。使用效果可看 切換自...

Mac系統實用技巧分享!

三指拖移選項是在 force touch 觸控板推出之前的預設功能,自從觸控板有了壓力感應功能,這個選項就被蘋果藏起來了。拖動視窗或者檔案只能通過重壓來實現,不熟練的在拖動過程拖動過程很容易斷開,又是拖動檔案時經常拖動到非目的資料夾,非常麻煩。但是蘋果還是良心的保留了這一選項,啟用三指拖移步驟如下 ...

IntelliJ IDEA 超實用技巧分享

提示不區分大小寫 settings editor general code completion 低版本 將 case sensitive completion 設定為 none 就可以了 自動導包功能及相關優化功能 settings editor general auto import ctrl ...