C语言基础函数
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内部机制进行处理。

浙公网安备 33010602011771号