项目代码量很大,但可以先由main函数开始落脚,慢慢搞懂框架,再扩展到懂细节,一步一步来
1、strstr函数:
const char *str = "wewq";
const char *substr = "we";
char *pos = strstr(str, substr);
返还substr在str字符串中第一次出现的位置
2、getopt函数:
int main(int argc, char *argv[])
while ((opt = getopt(argc, argv, "abc")) != -1)
用于解析命令行参数,argc是参数个数,argv[i]是具体命令
例如getopt的第二个参数是”a:",这代表识别一个-a + 参数的命令
如一个./program -a argument就是由program.c文件编译过来的可执行文件program,program中可执行文件能够识别命令行 -a argument
3、struct函数:
定义结构体,注意的是用typdef struct定义的结构体可以重命名,重命名后的例如MSG结构体定义变量不用带struct,直接MSG msg;即可,反之要带,struct MSG msg;
4、memset函数:
#include <stdio.h>
#include <string.h>
int main() {
char str[50] = "This is a string";
printf("Before memset: %s\n", str);
// 将str的前10个字节设置为字符 'x'
memset(str, 'x', 10 * sizeof(char));
printf("After memset: %s\n", str);
return 0;
}
Before memset: This is a string
After memset: xxxxxxxxxx is a string
void *s:指向要填充的内存块的指针。
int c:要填充的值。这个值会被转换为 unsigned char 类型,然后填充到内存块中。
size_t n:要填充的字节数。
5、union:
同一时刻只能有一个变量能用,一次声明只能生成一个对象
#include <stdio.h>
#include <string.h>
int main(){
union{
int a;
char buf[10];
}mu;
mu.a = 1;
//char BUF[20] = "1212";
//memcpy(mu.buf, BUF, 5);
printf("%d\n", mu.a);
printf("%s\n", mu.buf);
}