C語言基礎,記錄

2021-10-10 07:42:17 字數 546 閱讀 1561

1、sds_hdr_var(8,s) 表示使用 struct sdshdr8,入參中的t來替換後面的 ##t。

#define sds_hdr_var(t,s) struct sdshdr##t *sh = (void*)((s)-(sizeof(struct sdshdr##t)));
2、(char *) s 表示取 字元s 的記憶體首位址

3、memcpm 和 strcmp, strncmp 都是比較字串 =0表示相等,否則返回-1,1

4、memset(sh, 0, len) 表示 將 陣列sh 的 前 len 位設定為 0,一般用於初始化陣列

5、size_t 用於表示長度,是由於16,32,64位系統,對於長度最大值定義不同導致的

6、memcpy(s, init, initlen) 表示將 字元 init 的 initlen 位複製給字元 s

7、malloc 表示新分配乙個記憶體空間,初始化新分配的空間為0

realloc 表示更改以前乙個變數的長度,增加的時候,可能會移動到另外乙個區域,不初始化新增的區域

C語言記錄

1.定義乙個巨集 define swap x,y 交換x,y的值 include stdio.h define swap x,y int main 2.堆疊溢位的原因 1.函式呼叫太深 函式呼叫時會先入棧,也就是保護現場的產生的變數 棧溢位 2.動態申請的空間使用後沒有釋放 堆溢位 3.陣列訪問越界...

c 基礎語法記錄

extern儲存類 多個檔案共享的全域性變數或函式 引用 using namespace std 整個命名空間到當前作用域 using std count 變數到當前作用域 函式引數 傳值呼叫void functions int x,int y 實際值複製給形參,修改 實際值不改 指標呼叫void ...

C語言活動記錄

活動記錄,就是在程式執行的過程中函式呼叫時棧上的內容變化。乙個函式被呼叫,反映在棧上的與之相關的內容被稱為一幀,其中包含了引數 返回位址 老ebp值 區域性變數以及esp和ebp。c語言預設的呼叫規約為cdecl,引數從右往左依次入棧,之後是函式的返回位址入棧,接著是老ebp入棧。esp是棧頂指標,...