C 可变参数
可变参数可以使函数接受不定量的参数 基本语法 C语言的标准库<stdarg.h>提供了一组宏来操作可变参数 #include <stdarg.h> void func(const char *fmt, ...) { va_list args; // 定义一个变量,保存参数列表 va_start(args, fmt); // 初...
可变参数可以使函数接受不定量的参数 基本语法 C语言的标准库<stdarg.h>提供了一组宏来操作可变参数 #include <stdarg.h> void func(const char *fmt, ...) { va_list args; // 定义一个变量,保存参数列表 va_start(args, fmt); // 初...
在发生错误时,C 函数调用返回 1 或 NULL,同时会设置一个错误代码 errno,该错误代码是全局变量,表示在函数调用期间发生了错误。您可以在 <error.h> 头文件中找到各种各样的错误代码。 errno 可以通过以下两个方式来显示error错误 perror()函数显示您传给它的字符串,后跟一个冒号、一个空格和当前 errno 值的文本表示形式。 std...
概念 在C语言中,共用体(union)是一种特殊的数据类型,它允许多个成员共享同一块内存。 和结构体(struct)不同: 结构体:每个成员都有独立的存储空间,大小是所有成员大小之和(加上对齐)。 共用体:所有成员重叠存放,大小等于最大成员的大小,而且任意时刻只能保存其中一个成员的值。 基本语法 union Data { int i; float f; ...
在 C 语言里,“存储类”(storage class)是一组关键字,用来指定变量或函数在程序中的存储位置、生命周期和可见性。 主要回答三个问题: 变量/函数放在哪里?(存储位置:内存、寄存器、静态存储区等) 能活多久?(生命周期:函数执行期间还是整个程序期间) 谁能看见它?(作用域:当前文件、当前函数还是全局可见) 常见存储类关键字 存...
vim的一些使用技巧。
介绍 Valgrind 是一个开源的内存调试、内存泄漏检测和性能分析工具,主要用于 C/C++ 程序 的调试。它在程序运行时对其进行“动态二进制插桩”,可以捕捉各种内存问题。Valgrind 常用于查找: 内存泄漏(memory leaks) 未初始化内存的使用(use of uninitialized memory) 越界访问(buffer overflows/under...
Windows #include <stdio.h> #include <windows.h> #include <time.h> void process() { srand(time(NULL)); char style[5] = {'+', '-', '*', '>', '/'}; char loading[120...
fflush 函数用于刷新输出缓冲区,将缓冲区中尚未写入文件或终端的数据立刻写入目标设备(如文件或终端)。 它常用于确保数据即时输出,尤其是在使用缓冲输出的场景中。 函数原型 #include <stdio.h> int fflush(FILE *stream); 参数说明 参数 说明 ...
回车,即\r, CR (Carriage Return),表示将光标移动到行首,但不前进到下一行的行首 换行,即\n,LF (Line Feed),将光标向下移动到下一行,但是不返回行首 回车换行,即\r\n,CR + LF,结合了回车和换行 背景 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩...
概述 make:一个常见的自动化构建工具,用于根据依赖关系自动编译、链接及执行其他任务。 Makefile:make 所读取和执行的脚本文件,定义了目标、依赖及命令。 作用:通过声明式规则管理源文件、目标文件及其依赖关系,避免手动重复编译,提高效率。 make和makefile的关系 make 是可执行程序,运行时会在当前目录寻找名为 Makefile、makefi...