C語言
檔案操作
fopen(filename, "r") // 只讀模式開啟檔案
-r // 只讀
-w // 可寫
-b // 二進位制
fgetc(fd) // 從fd獲取char
fgets(st, n, stdin) // 從輸入流獲取n個字元
getchar() // 從輸入流獲取一個字元
feof() // 判斷是不是結尾,返回1是結尾
fflush() // 重新整理緩衝區到檔案中
fopen() // 檔案開啟
fclose() // 檔案關閉
fprintf() // 指定格式寫入檔案
fread() // 將檔案讀入到緩衝區中
fseek() // 更改檔案指標到開始還是末尾
ftell() // 返回檔案有多大,位元組
字串操作函式
strcmp(char1, char2) // 相等返回0
strchr(str, '\n') // 在str中查詢'\n'
strncpy(source, dist, sizeof(source));
strcpy(source, dist)// 遇到\0結束,複製函式
strdup(const char *s) // 複製引數指定的字串,並分配新的記憶體進行儲存,然後返回指標指向它
strtok(char *restrict s, const char *restrict delimiters) // 根據指定分隔符將字串分割為多個子字串,返回一個指向分割後生成的下一個字串的指標,除去第一次呼叫後續都用NULL
記憶體塊操作函式
memcpy() // 記憶體複製函式
memset() // 記憶體初始化函式
聯合體union
如果同時有兩個函式指標聯合體,它們會指向同一個記憶體地址區域,那麼只要有一個被賦值,那麼另一個就可以進行呼叫。
#include <stdio.h>
typedef int (*call_func) (int , int );
union {
call_func lfunc;
call_func rfunc;
}r_action;
int adds(int a, int b){
return a +b;
}
int main(){
r_action.lfunc = adds;
int n = r_action.rfunc(1,2);
printf("add is %d\n", n);
return 0;
}
注意:
這種方式並不好維護,因為是借用了union內部機制進行處理。