C/C++
C/C++
晗二狗
这个作者很懒,什么都没留下…
展开
-
C++中volatile关键字
转载https://blog.csdn.net/weixin_44363885/article/details/92838607 一、volatile介绍 volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了的话,将出现不一致的现象。下面举例说明。在DSP开发中,经常需要等待某个事件的触发,所以经常会写出这转载 2020-08-11 21:35:54 · 154 阅读 · 0 评论 -
C/C++中static的用法全局变量与局部变量
转载自C/C++中static的用法全局变量与局部变量 1.什么是static? static 是C/C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。 1.1static的引入 我们知道在函数内部定义的变量,当程序执行到它的定义处时,编译器为它在栈上分配空间,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现? 最容易想到的方法是定义为全局的变量,但定义一个全局变量有许多缺点,最明显的转载 2020-08-06 22:58:06 · 318 阅读 · 0 评论 -
为什么需要智能指针
参考自https://www.cnblogs.com/round1/p/12906648.html 主要为了避免以下Bug: 内存泄露 :对象无法被释放,最常见的问题。野指针 : 指针指向未知。重复释放 : 顾名思义。 (一)内存泄露 : 1. 抛出异常,函数中途退出,释放操作没有执行 C * c = new C; throw;转载 2020-08-03 23:39:29 · 450 阅读 · 0 评论 -
string相关库函数
char *strcat(char *dest, const char *src) 功能 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。 参数: dest – 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串。 src – 指向要追加的字符串,该字符串不会覆盖目标字符串。 返回值: 该函数返回一个指向最终的目标字符串 dest 的指针。 实例: #include <stdio.h> #include <string.h> int main (原创 2020-07-30 13:25:46 · 411 阅读 · 0 评论 -
C++ new和malloc的区别
这里先对new和delete简单进行一下总结,然后再细说new和malloc的区别。 一、new和delete C语言提供了malloc和free两个系统函数,完成对堆内存的申请和释放。而C++则提供了两个关键字new和delete; 1.1 规则 new/delete是关键字,效率高于malloc和free。 配对使用,避免内存泄漏和多重释放。 避免交叉使用,比如malloc申请空间delete释放,new出的空间被free。 new/delete 主要是用在类对象的申请和释放。申请的时候会调用构造器完转载 2020-07-24 23:05:00 · 129 阅读 · 0 评论