- 环境:Linux / VS Code
- 语言:C 语言
-
首先要先在terminal里面run task,然后再debug
-
尽量不要在main里面直接写函数
-
函数先声明,再调用
-
路径错误的话可以改成当前路径,./
-
测试的时候如果要注释大段代码可以用 # ifdef
-
save后再编译
-
路径的最后要加/才是文件夹
-
stat 函数: 一个在Linux下读取文件大小的方式
功能:通过文件名filename获取文件信息,并保存在buf所指的结构体stat中
int stat(const char *filename, struct stat *buf)
size = buf.st_size /*st_size, total size in bytes*/
output: size is 30
- 在vs code中配置新的工程的方法:
- 写好.c和.h文件,一个.h要对应一个.c,#include最好是单向的
- 点击terminal中的configure tasks, 配置tasks.json,修改args中的路径,要包含所有的.c文件
- 点击run中的run without debugging, 自动生成launch.json文件,再次点击run without debugging, 就可以看到运行结果
- Terminal - run task 相当于是 gcc编译,会有一个输出.o文件。但是在用sqlite3的时候后面有指令所以直接不可以直接用run task会报错undefined function,就是连接不到数据库,所以必须用以下指令:
gcc –o hello –L /usr/bin –I /usr/include Mysql.c –lsqlite3
- 其中,hello是输出文件,后续要查看输出结果可以用./hello查看。\
- -L后面是你安装sqlite3类库所在的路径,-I代表安装sqlite3的头文件路径。\
- 通过whereis sqlite3 可以查看软件安装目录。\
- 编译的这个文件一定要有一个main函数,所以Mysql.c里面一定要加一个main函数。
-
测试数据库,先要在main里面initial新的数据库,再插入数据。
-
写了新的测试用例函数记得在.h里面声明,否则有warning。
-
在run .c之前要先run .h,否则会有没引用的报错(或者只要save一下.h文件即可)
-
用到cjson的话只需要包含cjson.c 和 cjson.h就行了,不需要下载
-
要给 *value 分配一个内存空间,可以用calloc或者malloc,也可以动态分配
Value的值可以不确定,但是地址一定要有,后续才可以调用value
-
如果觉得在task.json里args的-g里面一个个添加要编译的.c文件很麻烦的话可以用makefile
-
!是逻辑运算符,是逻辑取反,比如 !12 = 0, !(5 > 3 ) =0
-
if()里不是一个表达式,而是个布尔值。表达式的效果也是给if返回一个布尔值,真或者假。
-
if语句里面包含真和非真,但是如果我们没有写清楚真和非真的话,会如何呢
if(x) 相当于 if(x !=0)。如果是指针的话,相当于 if( x!=NULL)。而
if(1) 相当于 if(1 !=0),而if(0)相当于if(0 !=0) -
当注释掉大块代码时,使用"#if 0"比使用"//"要好,因为用"//"做大段的注释要防止被注释掉的代码中有嵌套的"/**/"。
-
用__func__预定义标识符可以打印函数名