C CPP關鍵字和函式總結

2021-08-29 16:00:23 字數 2088 閱讀 9518

1. __thread關鍵字

執行緒區域性儲存(tls)是一種機制,通過這一機制分配的變數,每個當前執行緒有乙個該變數的例項.

__thread可用於全域性的變數,檔案區域性靜態變數,函式靜態變數或乙個類中的靜態資料成員。不能用於塊作用域,自動或非靜態資料成員。

2. __builtin_expect函式

暫時歸屬到這裡,後期再看能不能分開整理。

該函式涉及到編譯器優化,該函式的功能就是將大概率發生的指令先放於後面,這樣使得跳轉的時候可以大概率往下走而不需要跳轉。

// 大概率會發生的事情,1不是表示一定發生,而是大概率發生

#define likely(x) __builtin_expect(x, 1)

// 小概率會發生的事情,0不表示一定不發生,而是小概率發生

#define unlikely(x) __builtin_expect(x, 0)

1. strchr函式

#include

// 函式的功能為在str中查詢字元c第一次出現的位置,並返回該位置的指標。

// 返回的指標和str是共用同一塊記憶體的,也就是修改返回值也會修改引數。

char

*strchr

(char

* str,

char c)

;

2. strrchr函式

#include

// 函式的功能為在str中查詢字元c最後一次出現的位置,並返回該位置的指標。

// 返回的指標和str是共用同一塊記憶體的,也就是修改返回值也會修改引數。

char

*strrchr

(char

* str,

char c)

;

3. snprintf函式

#include

intsnprintf

(char

*str, size_t size,

const

char

*format,..

.)

引數說明:

str:表示需要輸入的字串首指標位置

size:制定輸入的最大長度,低於全部輸入,多餘只輸入前面一段

const char* format: 輸入格式

4. strerror函式和strerror_r函式

#include

// strerror通過傳入的errnum返回錯誤資訊的字串

// 不是執行緒安全的

char

*strerror

(int errnum)

;// strerror_r將傳入的errnum返回的錯誤資訊的字串寫入buf中。

// 是執行緒安全的

intstrerror_r

(int errnum,

char

*buf, size_t n)

;

5. 強制轉型函式

static_cast

(u)// 用於基本型別的強制轉型

const_cast

(u)// 用於常量型的轉型

reinterpret_cast

(u)// 用於不同型別的轉型

dynamic_cast

(u)// 用於有繼承關係的轉型,該轉型代價比較大

6. nanosleep函式

#include

// 引數說明:

// rqtp: 指定sleep的時間

// rmtp: 沒有超時返回的剩餘時間

// 函式功能:

// 暫停某個程序直到你規定的時間後恢復

// 返回:

// 成功,也就是等完了全部的時間,返回0,否則,返回-1,並設定錯誤變數errno

intnanosleep

(const

struct timespec *rqtp,

struct timespec *rmtp)

;

參考附錄:

this和static關鍵字總結

this 關鍵字 1 this 表示的是當前本身。更準確的說,this 代表當前物件的乙個引用。2 區分類成員屬性和方法的形參,呼叫當前物件的其他方法。任意位置 3 使用 this 來呼叫其他構造方法。必須是第一條語句 4 this 不能用於 static 方法。示例 public class te...

this關鍵字和super關鍵字

this關鍵字和super關鍵字都必須放在構造方法的第一行,所有兩個關鍵字不能同時存在,任選其一即可,只需保證子類的所有構造方法呼叫父類的構造方法即可 this關鍵字的應用 this關鍵字用於區分區域性變數和成員變數的同名問題 有this關鍵字的是成員變數,或者是誰呼叫我,訪問的就是誰 this關鍵...

static關鍵字和final關鍵字

static記住幾點 1.優先順序高,載入優先物件例項化 2.在記憶體中只分配一次 3.屬於類本身,所有例項共享,一處變,處處變 4.1 static不能訪問沒有static修飾的方法 因為不認識,物件例項後才能在外部使用方法 2 可以訪問static塊 3 未加static的方法可以訪問stati...