
C++基础
文章平均质量分 63
萌哒哒白小羊
hellow
展开
-
volatile关键字
volatile关键字(1)用来同步,因为同一个东西可能在不同的存储介质中有多个副本,有些情况下会使得这些副本中的值不同,这是不允许的,所以干脆用volatile,让它只 有一个,没有其他的副本,这样就不会发生不同步的问题。(2)防止编译器优化去掉某些语句,像我在arm中见到个寄存器非常奇怪,当中断来的时候,相对应的位置1,而清0又不能向这位写0,向这位写1才是1才 是清中断(清0转载 2017-06-17 15:30:31 · 294 阅读 · 0 评论 -
C99新增的柔性数组
我总结了一下用指针和用变长结构体的区别:1.在位置方面:指针可以放在任何地方,但是变长结构体的变长部分一定要放在结构体的最后。2.在内存占用方面:指针会占一个指针的大小的内存空间,但是变长数组是不占内存的,它只是一个占位符。3.在内存布局方面:指针指向的内存和结构体的内存可以是不连续的,但是变长部分和结构体的内存必须是连续。4.在内存释放方面:使用指针,就要先释放指原创 2017-06-19 11:23:49 · 613 阅读 · 0 评论 -
C++中 const限定符基本用法总结
{优快云:CODE:2444171}赛maw原创 2017-06-12 17:45:38 · 621 阅读 · 0 评论 -
C++异常处理 try catch throw
程序的错误大致可以分为三种,分别是语法错误、逻辑错误和运行时错误:1) 语法错误在编译和链接阶段就能发现,只有 100% 符合语法规则的代码才能生成可执行程序。2) 逻辑错误是说我们编写的代码思路有问题,不能够达到最终的目标,这种错误可以通过调试来解决。3) 运行时错误是指程序在运行期间发生的错误,例如除数为 0、内存分配失败、数组越界、文件不存在等。C++ 异常(Ex原创 2017-06-13 10:24:54 · 770 阅读 · 0 评论 -
assert断言的用处
assert宏的原型定义在中,其作用是如果它的条件返回错误(为假),则终止程序执行.原型:#include void assert( int expression );它先向stderr打印一条出错信息,然后通过调用 abort 来终止程序运行。assert()的缺点是,频繁的调用会极大的影响程序的性能,增加额外的开销。在调试结束后,可以通过在包含#include 的语翻译 2017-06-13 09:39:37 · 1634 阅读 · 1 评论 -
strcpy注意点
原型声明:char *strcpy(char* str1, const char *str2);功能:把从str2地址开始且含有'\0'结束符的字符串复制到以str1开始的地址空间说明:str1和str2所指内存区域不可以重叠, 且str1必须有足够的空间来容纳src的字符串。返回指向str1的指针。strcpy( str1, str2);str1的长度不够,会怎么原创 2017-07-22 13:21:13 · 2433 阅读 · 0 评论 -
一些输入输出函数
聊记于此,以防忘记,不断更新getline()的原型是istream& getline ( istream &is , string &str , char delim );其中 istream &is 表示一个输入流,譬如cin;string&str表示把从输入流读入的字符串存放在这个字符串中(可以自己随便命名,str什么的都可以);char delim表示遇到这个字符停止读入,在不原创 2017-07-31 11:54:26 · 309 阅读 · 0 评论