C标准库(Standard Library)提供了一系列预定义的函数和宏,涵盖了输入输出、字符串处理、数学运算、内存管理、时间日期等常用功能。除了基础用法外,标准库中还包含一些高级或不常用的功能,掌握它们能够帮助开发者编写更高效、更灵活或能处理特殊情况的C代码。qsortbsearch 提供了通用的排序和搜索能力,setjmplongjmp 提供了一种非本地 …
c++ exception
C++基础1 C++特点C++在C语言基础上引入了面对对象的机制,同时也兼容C语言。C++有三大特性(1)封装。(2)继承。(3)多态;C++语言编写出的程序结构清晰、易于扩充,程序可读性好。C++生成的代码质量高,效率高,C++更加安全,增加了const常量、引用、四类cast转换(static_cast、dynamic_cast、const_cast、r …
在Linux操作系统上,程序异常(crash)或死机都是由于进程收到了信号(signal)引起的,如SIGABRT、SIGSEGV和SIGBUS等,典型的都是由于程序运行出错造成的,这些信号都会杀死当前的进程。信号(Signal)是操作系统对进程的一种事件通知机制,信号只有3个来源:Linux内核(Kernel)其他进程进程本身导致进程异常的典型信号及常见原 …
当你安装完一款你喜欢的游戏,却在启动时提示系统缺少 d3dx9_39.dll、d3dx9_40.dll、d3dx9_41.dll、d3dx9_42.dll、d3dx9_43.dll、xinput1_3.dll 文件而无法正常游戏。当你安装完 AutoCAD、Photoshop、打开图片处理时,却提示系统缺少 dll,应用程序无法正常启动(0xc000007b …
昨天我和一些朋友一起调试代码,他们做程序员这一行都不太久,我向他们展示了一些代码调试技巧。今天早上我在想,我应该如何教授他们学习代码调试?我在Twitter上发了一条推文说,我从来没有见过任何好的调试代码的指南。像往常一样,我得到了很多有帮助的回答,现在我对如何教授代码调试技巧描述调试过程有了些想法。调试资源我希望有更多的关于代码调试的书籍指南,在这里我有两 …
1.引用参数使用引用替代指针且所有不变的引用参数必须加上const。在C 语言中,如果函数需要修改变量的值,参数必须为指针,如int foo(int *pval),在 C++ 中,函数还可以声明引用参数int foo(int &val),定义引用参数防止出现 (*pval)++ 这样丑陋的代码。像拷贝构造函数这样的应用也是必需的,而且更明确,不接受 NULL …
C 语言 typedef 与 #define 比较https:www.runoob.comnote24230野指针和悬空指针区别?野指针:指的是没有被初始化过的指针。 解决方法:指针变量未及时初始化 => 定义指针变量及时初始化,要么置空。悬空指针:指针最初指向的内存已经被释放了的一种指针。解决方法:指针free或delete之后没有及时置空 => …
协程概念协程是一个可以暂停执行以便稍后恢复的函数。协程是无堆栈的:通过返回给调用者来暂停执行,并且恢复执行所需的数据与堆栈分开存储。这允许异步执行顺序的代码(例如,在没有显式回调的情况下处理非阻塞 IO),并且还支持惰性计算无限序列和其他用途的算法。如果函数的定义执行以下任何一项,则该函数是协程:1、使用 co_await 运算符暂停执行直到恢复为止task …
众所周知,CC++执行效率高,但难以驾驭,开车一时爽,但稍不留神容易翻车。估计每个CC++程序员都遭受过内存泄漏的困扰。本文提供一种通过wrap malloc查找memory leak的思路,使得你翻车的时候能够自救,而不至于车毁人亡。什么是内存泄漏?内存泄漏就是动态申请的内存丢失引用,造成没有办法回收它(我知道杠jing要说进程退出前系统会统一回收),相当 …
0.简介 在C++编程中,可调用对象的种类有很多(比如普通函数、函数指针、成员函数指针等),在C++17之前,调用这些可调用对象需要使用各自特定的语法,为了解决这个问题,C++17引入了invoke函数模板,通过一种统一方式调用各种可调用对象,让开发者无需关心可调用对象的具体类型,从而简化代码,提高代码通用性。本文将从invoke的原理,源码实现,使用三个方 …
