<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_36629451的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_36629451</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_36629451]]></copyright><item><title><![CDATA[驱动模型]]></title><link>https://blog.youkuaiyun.com/qq_36629451/article/details/77346190</link><guid>https://blog.youkuaiyun.com/qq_36629451/article/details/77346190</guid><author>qq_36629451</author><pubDate>Fri, 18 Aug 2017 00:29:14 +0800</pubDate><description><![CDATA[#include 
#include 
#include 
#include 
#include 

//设备结构体 
struct xxx_dev_t{ 
    struct cdev cdev; 
    ...
}xxx_dev;

/*打开*/
int xxx_open(struct inode *inode, struct file *filp)
{
   /*************]]></description><category></category></item><item><title><![CDATA[linux驱动内核裁剪及烧录]]></title><link>https://blog.youkuaiyun.com/qq_36629451/article/details/77281871</link><guid>https://blog.youkuaiyun.com/qq_36629451/article/details/77281871</guid><author>qq_36629451</author><pubDate>Wed, 16 Aug 2017 23:28:41 +0800</pubDate><description><![CDATA[c裁剪在menuconfig中选择]]></description><category></category></item><item><title><![CDATA[C++知识总结（22）]]></title><link>https://blog.youkuaiyun.com/qq_36629451/article/details/77018498</link><guid>https://blog.youkuaiyun.com/qq_36629451/article/details/77018498</guid><author>qq_36629451</author><pubDate>Sat, 12 Aug 2017 13:06:43 +0800</pubDate><description><![CDATA[106. vector的优缺点
优点：
（1）不确定内存大小的数组的连续存储，可以像数组进行动态操作；
（2）随机访问方便，即支持[ ]操作符和vector.at()
（3）节省空间
缺点：
（1）在内部进行插入删除操作效率低
（2）只能在vector的最后进行push和pop，不能在vector的头进行push和pop
（3）当动态添加的数据超过vector默认分配的大小时要进行]]></description><category></category></item><item><title><![CDATA[C++知识总结（21）]]></title><link>https://blog.youkuaiyun.com/qq_36629451/article/details/77018487</link><guid>https://blog.youkuaiyun.com/qq_36629451/article/details/77018487</guid><author>qq_36629451</author><pubDate>Sat, 12 Aug 2017 13:06:32 +0800</pubDate><description><![CDATA[101. 标准库的六大组建分别是什么？有什么作用
1、容器（Containers）：各种数据结构，如Vector,List,Deque,Set,Map,用来存放数据，STL容器是一种Class
 Template,就体积而言，这一部分很像冰山载海面的比率。
2、算法（Algorithms）：各种常用算法如Sort,Search,Copy,Erase,从实现的角度来看，STL算法是一种Func]]></description><category></category></item><item><title><![CDATA[C++知识总结（20）]]></title><link>https://blog.youkuaiyun.com/qq_36629451/article/details/77018482</link><guid>https://blog.youkuaiyun.com/qq_36629451/article/details/77018482</guid><author>qq_36629451</author><pubDate>Sat, 12 Aug 2017 13:06:19 +0800</pubDate><description><![CDATA[96编译型语言和解释型语言的区别
关于“编译型语言”和“解释性语言”的区别
编译型是一次性编译成“二进制”（都是变成二进制）,以后用时不用再编译了
解释性语言是边编译边执行,根据执行规则（脚本语言规则）来告诉计算机要作什么
97 程序由源文件到可执行文件经过哪几步？分别做些什么
1.编辑：也就是编写C/C++程序。
2.预处理：相当于根据预处理指令组装新的C/C++程序。经过预处理，会]]></description><category></category></item><item><title><![CDATA[C++知识总结（19）]]></title><link>https://blog.youkuaiyun.com/qq_36629451/article/details/77018470</link><guid>https://blog.youkuaiyun.com/qq_36629451/article/details/77018470</guid><author>qq_36629451</author><pubDate>Sat, 12 Aug 2017 13:06:05 +0800</pubDate><description><![CDATA[86 C++是如何实现代码的扩展性的？
利用多态机制提高了代码的扩展性。
87 虚函数是如何实现多态的
 
 
多态是指同一接口，对于不同的对象，可以有不同的执行结果。简单的说，就是用基类的引用指向子类的对象。
  为什么要用多态呢？
原因：我们知道，封装可以隐藏实现细节，使得代码模块化；继承可以扩展已存在的代码模块（类）；它们的目的都是为了——代码重用。而多态除了代码的复用性外，还]]></description><category></category></item><item><title><![CDATA[C++知识总结（18）]]></title><link>https://blog.youkuaiyun.com/qq_36629451/article/details/77018463</link><guid>https://blog.youkuaiyun.com/qq_36629451/article/details/77018463</guid><author>qq_36629451</author><pubDate>Thu, 10 Aug 2017 21:51:36 +0800</pubDate><description><![CDATA[81 什么是虚函数？
虚函数是运行时多态不可少的技术，虚函数的存在主要是允许基类指针调用派生类函数
82 什么函数不能声明为虚函数
普通函数（非成员函数），构造函数，内联函数，静态成员函数，友元函数都不能声明为虚函数。
83 举例谈一谈如何解决多继承中的二义性问题
二义性解决方法： 1：虚基类
2： 作用域限定符
虚继承主要解决二义性的问题，并且为最远派生类提供唯一的基类成员，而不产]]></description><category></category></item><item><title><![CDATA[C++知识总结（17）]]></title><link>https://blog.youkuaiyun.com/qq_36629451/article/details/77018456</link><guid>https://blog.youkuaiyun.com/qq_36629451/article/details/77018456</guid><author>qq_36629451</author><pubDate>Thu, 10 Aug 2017 21:51:17 +0800</pubDate><description><![CDATA[77 有哪些不能自动继承的成员函数
构造函数，析构函数，拷贝构造函数，析构函数。
78 C++中接口继承与实现继承的区别
    非虚函数：强制实现继承
虚函数：可视继承
纯虚函数：接口继承
79 基类与派生类之间转换的情况
a) 对象的转换:
1，派生类对象到基类对象的转换： 在用户代码中，只有公有继承时可以转换。在派生类成员函数中，均可进行转换。
2，基类对象到派生类对象不可]]></description><category></category></item><item><title><![CDATA[C++知识总结（16）]]></title><link>https://blog.youkuaiyun.com/qq_36629451/article/details/77018451</link><guid>https://blog.youkuaiyun.com/qq_36629451/article/details/77018451</guid><author>qq_36629451</author><pubDate>Thu, 10 Aug 2017 19:37:54 +0800</pubDate><description><![CDATA[71 mutable关键字的作用
mutalbe的中文意思是“可变的，易变的”，跟constant（既C++中的const）是反义词。
在C++中，mutable也是为了突破const的限制而设置的。被mutable修饰的变量，将永远处于可变的状态，即使在一个const函数中。
我们知道，如果类的成员函数不会改变对象的状态，那么这个成员函数一般会声明成const的。但是，有些时候，我们需要在]]></description><category></category></item><item><title><![CDATA[C++知识总结（15）]]></title><link>https://blog.youkuaiyun.com/qq_36629451/article/details/77018441</link><guid>https://blog.youkuaiyun.com/qq_36629451/article/details/77018441</guid><author>qq_36629451</author><pubDate>Thu, 10 Aug 2017 19:37:32 +0800</pubDate><description><![CDATA[66 一个空类会默认生成哪些成员
1. 无参的构造函数Empty(){}
2. 拷贝构造函数Empty(constEmpty©){}
3. 赋值运算符Empty&operator= (constEmpty©){}
4. 析构函数（非虚）~Empty(){}这些函数只有在第一次使用它们的时候才会生成，他们都是inline并且public的。如果想禁止生成这些函数，可以将它们定义成privat]]></description><category></category></item><item><title><![CDATA[C++知识总结（14）]]></title><link>https://blog.youkuaiyun.com/qq_36629451/article/details/77018434</link><guid>https://blog.youkuaiyun.com/qq_36629451/article/details/77018434</guid><author>qq_36629451</author><pubDate>Thu, 10 Aug 2017 19:37:13 +0800</pubDate><description><![CDATA[61 类的成员变量的初始化顺序
1、成员变量在使用初始化列表初始化时，与构造函数中初始化成员列表的顺序无关，只与定义成员变量的顺序有关。因为成员变量的初始化次序是根据变量在内存中次序有关，而内存中的排列顺序早在编译期就根据变量的定义次序决定了。这点在EffectiveC++中有详细介绍。
2、如果不使用初始化列表初始化，在构造函数内初始化时，此时与成员变量在构造函数中的位置有关。
3、注意：]]></description><category></category></item><item><title><![CDATA[C++知识总结（13）]]></title><link>https://blog.youkuaiyun.com/qq_36629451/article/details/77018428</link><guid>https://blog.youkuaiyun.com/qq_36629451/article/details/77018428</guid><author>qq_36629451</author><pubDate>Thu, 10 Aug 2017 19:36:23 +0800</pubDate><description><![CDATA[56 桥接模式的使用范围
 在以下的情况下应当使用桥梁模式：
1．如果一个系统需要在构件的抽象化角色和具体化角色之间增加更多的灵活性，避免在两个层次之间建立静态的联系。 
2．设计要求实现化角色的任何改变不应当影响客户端，或者说实现化角色的改变对客户端是完全透明的。
3．一个构件有多于一个的抽象化角色和实现化角色，系统需要它们之间进行动态耦合。 
4．虽然在系统中使用继承是没有问题的，但]]></description><category></category></item><item><title><![CDATA[C++知识总结（12）]]></title><link>https://blog.youkuaiyun.com/qq_36629451/article/details/77018420</link><guid>https://blog.youkuaiyun.com/qq_36629451/article/details/77018420</guid><author>qq_36629451</author><pubDate>Thu, 10 Aug 2017 16:45:29 +0800</pubDate><description><![CDATA[51 建造者模式和工厂模式的区别？      
工厂模式一般都是创建一个产品，注重的是把这个产品创建出来就行，只要创建出来，不关心这个产品的组成部分。从代码上看，工厂模式就是一个方法，用这个方法就能生产出产品。
             建造者模式也是创建一个产品，但是不仅要把这个产品创建出来，还要关系这个产品的组成细节和组成过程。从代码上看，建造者模式在建造产品时，这个产品有很多方法，建造者]]></description><category></category></item><item><title><![CDATA[C++知识总结（11）]]></title><link>https://blog.youkuaiyun.com/qq_36629451/article/details/77018413</link><guid>https://blog.youkuaiyun.com/qq_36629451/article/details/77018413</guid><author>qq_36629451</author><pubDate>Thu, 10 Aug 2017 16:44:57 +0800</pubDate><description><![CDATA[46 什么是STL？STL六大组件是什么及关系？
什么是STL
1、STL（Standard Template Library），即标准模板库，是一个高效的C++程序库。
2、包含了诸多在计算机科学领域里常用的基本数据结构和基本算法。为广大C++程序 员们提供了一个可扩展的应用框架，高度体现了软件的可复用性
3、从逻辑层次来看，在STL中体现了泛型化程序设计的思想（generic prog]]></description><category></category></item><item><title><![CDATA[C++知识总结（10）]]></title><link>https://blog.youkuaiyun.com/qq_36629451/article/details/77018409</link><guid>https://blog.youkuaiyun.com/qq_36629451/article/details/77018409</guid><author>qq_36629451</author><pubDate>Thu, 10 Aug 2017 15:44:57 +0800</pubDate><description><![CDATA[42 如何调试内存错误？
1.利用gdb逐步查找段错误: 
2.分析Core文件
3.段错误时启动调试
4.4.利用backtrace和objdump进行分析
 
 
43 STL类库
a) =,assign() //赋以新值 
b) swap() //交换两个字符串的内容 
c) +=,append(),push_back() //在尾部添加字符 
d) insert()]]></description><category></category></item><item><title><![CDATA[C++知识总结（9）]]></title><link>https://blog.youkuaiyun.com/qq_36629451/article/details/77018368</link><guid>https://blog.youkuaiyun.com/qq_36629451/article/details/77018368</guid><author>qq_36629451</author><pubDate>Thu, 10 Aug 2017 09:25:02 +0800</pubDate><description><![CDATA[41 函数模板与类模板的使用
 函数模板是一种不说明某些参数的数据类型的函数，模板定义以关键字template开头，关键字class(或typename)表示其后的标识符T是模板参数（类型参数），用来指定函数模板abs()中参数val的数据类型，随后是函数模板abs()的定义。定义函数模板时，参数化的数据类型T可以用来声明函数的参数和返回值，在函数体中还可以用来声明工作变量。]]></description><category></category></item><item><title><![CDATA[C++知识总结（8）]]></title><link>https://blog.youkuaiyun.com/qq_36629451/article/details/77016868</link><guid>https://blog.youkuaiyun.com/qq_36629451/article/details/77016868</guid><author>qq_36629451</author><pubDate>Wed, 09 Aug 2017 23:23:37 +0800</pubDate><description><![CDATA[34  C与C++变量初始化有什么不同
1）在C语言中全局变量存放在全局数据区，由编译器建立，如果在定义的时候不做初始化，系统会将其自动初始化，数值型为0，字符型和指针变量会自动赋值为NULL。静态变量和全局变量类似。而非静态局部变量不做初始化，它的值将是随机数。
2）在C++中，如果在一个文件中定义了int a=5，要在另一个文件中定义int b = a的话，前面必须对a进行声明：exter]]></description><category></category></item><item><title><![CDATA[C++知识总结（7）]]></title><link>https://blog.youkuaiyun.com/qq_36629451/article/details/77018344</link><guid>https://blog.youkuaiyun.com/qq_36629451/article/details/77018344</guid><author>qq_36629451</author><pubDate>Wed, 09 Aug 2017 23:22:48 +0800</pubDate><description><![CDATA[31 inline关键字的作用？适用场合？使用注意事项？
1、在C++中，在类的内部定义了函数体的函数，被默认为是内联函数。而不管是否有inline关键字。
2、如果函数的定义放在类的外部，函数定义前必须加inline才能成为内联函数，而函数声明可以加inline也可以不加
3、关键字inline 必须与函数定义体放在一起才能使函数成为内联，仅将inline 放在函数声明前面不起任何作用。]]></description><category></category></item><item><title><![CDATA[C++知识总结（6）]]></title><link>https://blog.youkuaiyun.com/qq_36629451/article/details/77016799</link><guid>https://blog.youkuaiyun.com/qq_36629451/article/details/77016799</guid><author>qq_36629451</author><pubDate>Wed, 09 Aug 2017 23:17:01 +0800</pubDate><description><![CDATA[26 extern关键字的作用？适用场合？使用注意事项？
extern可以置于变量或者函数前，以标示变量或者函数的定义在别的文件中，提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。
  
27 const关键字的作用？适用场合？使用注意事项？
(1)在C语言中用const去修饰一个变量，表示这个变量是只读的，不可通过显式的调用a去修改a的值，并且此]]></description><category></category></item><item><title><![CDATA[C++知识总结（5）]]></title><link>https://blog.youkuaiyun.com/qq_36629451/article/details/77016705</link><guid>https://blog.youkuaiyun.com/qq_36629451/article/details/77016705</guid><author>qq_36629451</author><pubDate>Wed, 09 Aug 2017 23:16:49 +0800</pubDate><description><![CDATA[21.new/delete 与malloc/free 的区别
1. new/delete是C++的操作符，malloc/free是C/C++标准库函数。
2. new分为两步的：第一步是申请内存，第二步则是调用构造函数初始化对象。同样，在调用delete的时候，需要先调用析构函数，然后再回收堆内存。malloc只会根据参数分配内存，默认返回指向void*的指针，同样free释放malloc分配]]></description><category></category></item></channel></rss>