C语言
SofterICer
这个作者很懒,什么都没留下…
展开
-
C++常用工具函数-1
【代码】C++常用工具函数-1。原创 2024-01-02 09:04:08 · 436 阅读 · 0 评论 -
GCC编译器
在使用gcc/g++编译的时候定义宏 # 常用场景: # -DDEBUG 定义DEBUG宏,可能文件中有DEBUG宏部分的相关信息,用个DDEBUG来选择开启或关闭DEBUG。## 所谓优化,例如省略掉代码中从未使用过的变量、直接将常量表达式用结果值代替等等,这些操作会缩减目标文件所包含的代码量,提高最终生成的可执行文件的运行效率。# 在/lib和/usr/lib和/usr/local/lib里的库直接用-l参数就能链接。# -O2 除了完成-O1的优化之外,还进行一些额外的调整工作,如指令调整等。原创 2024-01-01 22:54:01 · 424 阅读 · 0 评论 -
linux-c++开发环境
【代码】linux-c++开发环境。原创 2024-01-01 22:47:23 · 337 阅读 · 0 评论 -
std::ofstream来将cout的输出重定向到文件
在这个示例中,std::cout.rdbuf(out.rdbuf())将cout的输出重定向到文件,std::cout.rdbuf(coutbuf)将cout的输出恢复到控制台。原创 2023-12-29 13:45:17 · 494 阅读 · 0 评论 -
windows调用dll的时候无法解析的外部符号
windows下链接外部库需要_declspec(dllexport),linux下不需要默认都是可导出的。原创 2023-12-29 11:34:53 · 484 阅读 · 0 评论 -
linux下实现GetPrivateProfileString - int
【代码】linux下实现GetPrivateProfileString - int。原创 2023-12-25 11:17:06 · 576 阅读 · 2 评论 -
Linux 下 GCC 编译共享库控制导出函数的方法
此时,如果对函数设置 __attribute__((visibility("default"))) 参数,则该函数按 public 属性处理,-fvisibility=hidden 参数不会对该函数起作用。所以,针对 GCC 设置了 -fvisibility=hidden 参数之后,只有设置了 __attribute__((visibility("default"))) 属性的函数才是对外可见的,如此则效果等同于 Visual Studio 下的 __declspec(dllexport) 定义。原创 2023-12-19 22:30:00 · 527 阅读 · 0 评论 -
常量全局变量的外部链接
【代码】常量全局变量的外部链接。原创 2023-12-12 22:00:00 · 35 阅读 · 0 评论 -
C++ 类型萃取
std::is_floating_point:判断类型 T 是否为浮点数类型。std::is_const:判断类型 T 是否为 const 类型。类型萃取可以帮我们检查和处理类型特性,从而优化代码、避免错误或提高性能。std::is_reference:判断类型 T 是否为引用类型。std::is_integral:判断类型 T 是否为整数类型。std::is_same:判断类型 T 和 U 是否相同。std::is_pointer:判断类型 T 是否为指针类型。原创 2023-12-12 23:30:00 · 164 阅读 · 0 评论 -
C++ &用法全面剖析
我们知道,参数的传递本质上是一次赋值的过程,赋值就是对内存进行拷贝。所谓内存拷贝,是指将一块内存上的数据复制到另一块内存上。对于像 char、bool、int、float 等基本类型的数据,它们占用的内存往往只有几个字节,对它们进行内存拷贝非常快速。而数组、结构体、对象是一系列数据的集合,数据的数量没有限制,可能很少,也可能成千上万,对它们进行频繁的内存拷贝可能会消耗很多时间,拖慢程序的执行效率。C/禁止在函数调用时直接传递数组的内容,而是强制传递数组,这点已在《》中进行了讲解。原创 2023-12-12 23:30:00 · 136 阅读 · 0 评论 -
C++ exception类:C++标准异常的基类
这里需要说明的是 what() 函数。what() 函数返回一个能识别异常的字符串,正如它的名字“what”一样,可以粗略地告诉你这是什么异常。不过C++标准并没有规定这个字符串的格式,各个编译器的实现也不同,所以 what() 的返回值仅供参考。之所以使用引用,是为了提高效率。如果不使用引用,就要经历一次对象拷贝(要调用拷贝构造函数)的过程。语言本身或者标准库抛出的异常都是 exception 的子类,称为标准异常(S。原创 2023-12-12 22:15:00 · 118 阅读 · 0 评论 -
throw 用作异常规范
C++ 规定,异常规范在函数声明和函数定义中必须同时指明,并且要严格保持一致,不能更加严格或者更加宽松。//错!定义中有异常规范,声明中没有//错!定义和声明中的异常规范不一致//对!定义和声明中的异常规范严格一致。原创 2023-12-12 22:30:00 · 106 阅读 · 0 评论 -
C++ throw(抛出异常)详解
异常处理的流程,具体为:抛出(Throw)--> 检测(Try) --> 捕获(Catch)异常必须显式地抛出,才能被检测和捕获到;如果没有显式的抛出,即使有异常也检测不到。在 C++ 中,我们使用 throw 关键字来显式地抛出异常,它的用法为:exceptionData 是“异常数据”的意思,它可以包含任意的信息,完全有程序员决定。exceptionData 可以是 int、float、bool 等基本类型,也可以是。原创 2023-12-12 22:00:00 · 685 阅读 · 0 评论 -
C++中用以声明类的另一个关键字——struct
class”和“struct”除了上面这点在类成员默认访问级别上的差异之外,从“感觉”上讲,大多数程序员都认为它们仍有差异:“struct”仅像一堆缺乏封装的开放的内存位,更多时候它是用以表示比较复杂的数据;在语法上,“class”和“struct”非常相似,两者都可以用来声明类,而两者唯一的区别就是,在没有指定访问级别的默认情况下,用“class”声明的类当中的成员是私有的(private),而用“struct”声明的类当中的成员是公有的(public)。// 使用“struct”定义一个Rect类。原创 2023-12-12 22:00:00 · 148 阅读 · 0 评论 -
VS中使用C语言读取文件内容并转换成16进制,多线程调用
中的第四个参数用于传递ThreadProcECC256的参数,参数不能直接放到 ThreadProcECC256 中。原创 2023-09-25 11:02:20 · 261 阅读 · 0 评论 -
vs 2022中创建多线程并传参
/ 等待新线程完成。原创 2023-09-22 16:36:08 · 154 阅读 · 0 评论 -
C-数组比较-读取文件中的字符串转换为16进制字符串
printf("无法打开文件\n");//// 逐行读取文件内容。原创 2023-09-22 14:46:43 · 189 阅读 · 0 评论