C++ cmath
cmath和math.h math.h是C语言的头文件,没有命名空间的概念,所有函数和宏都是直接定义在全局命名空间里 cmath是C++语言的头文件,引入了命名空间的概念,所有函数和常量都定义在std命名空间中,从而避免了潜在的命名冲突 C++ 标准明确推荐使用 <cmath> 而不是 <math.h> 使用时,需先引用 #include ...
cmath和math.h math.h是C语言的头文件,没有命名空间的概念,所有函数和宏都是直接定义在全局命名空间里 cmath是C++语言的头文件,引入了命名空间的概念,所有函数和常量都定义在std命名空间中,从而避免了潜在的命名冲突 C++ 标准明确推荐使用 <cmath> 而不是 <math.h> 使用时,需先引用 #include ...
简介 signal.h 头文件定义了一个变量类型 sig_atomic_t、两个函数调用和一些宏来处理程序执行期间报告的不同信号。 库变量 sig_atomic_t 这是int类型,在信号处理程序中作为变量使用,它是一个对象的整数类型,该对象可以作为一个原子实体访问,即使存在异步信号时,该对象可以作为一个原子实体访问。 库宏 SIG_DFL: 默认的信号处理程序 ...
简介 C 标准库的 ctype.h 头文件提供了一些函数,可用于测试和转换字符,这些函数主要用于检查字符的类型(如字母、数字、空白字符等)以及进行字符大小写转换。 isalnum() 描述 检查所传字符是否为字母或数字 声明 int isalnum(int c); 参数 c - 需要检查的字符 返回值 如果 c 是一个字母或数字,则返回非...
描述 C 标准库的 assert.h 头文件提供了一个名为 assert 的宏,它可用于验证程序做出的假设,并在假设为假时输出诊断消息。 定义 assert的原型是一个宏,不是函数 #include <assert.h> #define assert(expression) /* implementation-defined */ 作用 assert 用于...
可变参数可以使函数接受不定量的参数 基本语法 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...