随笔分类 -  C/C++

摘要:获取 C++ 标准库主要有两种途径: 从 C++ 编译器的安装位置(Your C++ compiler installation location)和直接查看或下载网上开源代码(Online open source codes). 具体如下: C++编译器的安装位置(Your C++ compile 阅读全文
posted @ 2020-06-29 15:05 klchang 阅读(19108) 评论(0) 推荐(4) 编辑
摘要:原理 赫夫曼编码可以很有效地压缩数据: 通常可以节省20%-90%, 具体的压缩率依赖于数据的特性; 若将待压缩数据看做是字符序列, 根据每个字符的出现频率, 赫夫曼贪心算法构造出字符的最优二进制表示, 即霍夫曼编码. 二进制字符编码(binary character code, 简称编码 code 阅读全文
posted @ 2020-06-22 12:41 klchang 阅读(7266) 评论(0) 推荐(0) 编辑
摘要:使用 C 语言标准库 <stdio.h> 中的 FILE 指针指向原文件和目标文件,然后调用函数 fgetc/fputc 或 fread/fwrite 实现从原文件到目标文件的字节复制。 采用 fgetc/fputc 函数进行文件复制的的核心代码 注:1)EOF宏,表示文件尾(End Of File 阅读全文
posted @ 2020-01-11 19:13 klchang 阅读(5682) 评论(0) 推荐(0) 编辑
摘要:C语言 在 C 语言中, 使用 main 函数的输入参数 argc 和 argv 传入命令行参数. argc 为 int 类型, 表示传入命令行参数的个数 (argument count); argv 为 char** 类型, 表示命令行参数向量 (argument vector), 每个命令行参数 阅读全文
posted @ 2018-07-14 13:40 klchang 阅读(3050) 评论(0) 推荐(0) 编辑
摘要:NaN 是 Not a Number 的缩写.它是一个数值类型值,通常在浮点计算中,表示未定义或无法表示的值.而且,不能直接使用相等运算符 (==) 检查 NaN.由于在程序中,nan == nan (C/C++/Python) 或 nan is nan (Python) 总是返回 0 或 Fals 阅读全文
posted @ 2018-05-12 21:08 klchang 阅读(5971) 评论(0) 推荐(1) 编辑
摘要:英文原文: https://sourcemaking.com/design_patterns/singleton 意图 确保一个类只有一个实例,并提供一个访问其实例的全局点; 封装 “即时初始化” (just-in-time initialization)或 “首次使用时初始化” (initiali 阅读全文
posted @ 2017-08-14 08:51 klchang 阅读(1589) 评论(0) 推荐(0) 编辑
摘要:可变参数宏(Variadic Macro)在1999年的ISO C标准中,可以声明一个像函数一样接受可变参数的宏。定义这种宏的语法与函数的定义相似。这是一个例子: 其中,‘…’ 是可变参数。在宏的声明中,它代表0个或更多个tokens和任意数量的逗号,直到遇到闭合括号来结束声明。这些tokens的集 阅读全文
posted @ 2017-04-21 20:23 klchang 阅读(339) 评论(0) 推荐(0) 编辑
摘要:RGiesecke.DllExport 在 UnmanagedExports 中。安装过程如下: 1、首先在“工具”菜单下的“扩展管理器”中,安装 NuGet Package Manager2、“工具”下的“NuGet包管理器”选择“包管理控制台” PM> Install-Package Unman 阅读全文
posted @ 2016-12-27 20:49 klchang 阅读(1917) 评论(0) 推荐(0) 编辑
摘要:C标准函数库中,常见的堆上内存管理函数有malloc(), calloc(), recalloc(), free()。 之所以使用堆,是因为栈只能用来保存临时变量、局部变量和函数参数。在函数返回时,自动释放所占用的存储空间。而堆上的内存空间不会自动释放,直到调用free()函数,才会释放堆上的存储空 阅读全文
posted @ 2016-07-29 19:13 klchang 阅读(9969) 评论(0) 推荐(1) 编辑