c 内功修炼----预处理 volatile
1.预处理 1.1define 宏定义和函数有何区别? 宏在编译时完成替换,之后被替换的文本参与编译,相当于直接插入了代码,运行时不存在函数调用,执行起来更快;函数调用在运行时需要跳转到具体调用函数。 宏函数属于在结构中插入代码,没有返回值...
1.预处理 1.1define 宏定义和函数有何区别? 宏在编译时完成替换,之后被替换的文本参与编译,相当于直接插入了代码,运行时不存在函数调用,执行起来更快;函数调用在运行时需要跳转到具体调用函数。 宏函数属于在结构中插入代码,没有返回值...
0.概述 1.类的成员变量 可变成员变量mutable 在c 中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量(mutable只能由于修饰类的非静态数据成员),将永远处于可变的状态,即使在一个co...
c和c 的区别? 第一点就应该想到c是面向过程的语言,而c 是面向对象的语言,一般简历上第一条都是熟悉c/c 基本语法,了解c 面向对象思想,那么,请问什么是面向对象? c和c 动态管理内存的方法不一样,c是使用malloc/fr...
0.概述 多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。...
第一层:thread cache(线程缓存) 1.thread cache是内存池中的第一层缓存, 这一层缓存主要解决的问题就是并发状态下锁竞争的效率问题。 线程在这里申请不需要加锁,每一个线程都有自己独立的cache,这也就是这个项目并发...
原理 this指针是什么? 1.this指针是类的指针,指向对象的首地址。 2.成员函数默认会隐式的包含this指针形参 3.在成员函数中所有对成员变量的调用都会默认转换成用this指针对成员变量的调用 4.this指针只能在成员函数中使用...
算下来已经很久以前了,大概有那么几个星期了吧。看到了帖子上有人问为什么下面的语句的对错原因 int i = 0; int *ip = &(i ); //错误 int *ip = &( i); //正确 看到上面的语句,当...
i 与 i 的主要区别有两个: 1、 i 返回原来的值, i 返回加1后的值。 2、 i 不能作为左值,而 i 可以。 毫无疑问大家都知道第一点(不清楚的看下下面的实现代码就了然了),我们重点说下第二点。 首先解释下什么...
使用pair作为unordered_map的key时会提示这样的错误: error: implicit instantiation of undefined template 'std::__1::hash
在linux中做c/c 开发经常会遇到一些不可预知的问题导致程序崩溃,同时崩溃后也没留下任何代码运行痕迹,因此,堆栈跟踪技术就显得非要重要了。本文将简单介绍linux中c/c 程序运行时堆栈获取,首先来看backtrace系列函数——使...