![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
erqiic
这个作者很懒,什么都没留下…
展开
-
c++ 头文件和库
1 c++ 头文件和库的位置与编译器类型有关。2 两种编译器gcc是一个编译器集合,不是单一编译器。使用autotools,make作为build工具。使用gdb作为debugger。使用ld作为linker。clang/llvm是一个编译器工具链。使用cmake作为build工具。使用lldb作为debugger。使用lld作为linker。编译器分前端和后端。clang是前端,llvm是后端。3 头文件和库文件1)编译器 -I -L指定的路径2)环境变量CPLUS_INCLUDE_PATH原创 2021-07-28 12:43:23 · 522 阅读 · 0 评论 -
DDEBUG DNDEBUG
-D is the GCC option to define a macro. NDEBUG is the macro to be defined to turn off asserts as mandated by the C standard.原创 2021-07-15 13:54:37 · 273 阅读 · 0 评论 -
c++ 变量与函数的定义与声明
首先看一下编译过程:预编译:完成替换。编译源文件,生成符号表,只要符号被声明就行,不需要存在。如果符号没有声明,就会报编译错误。链接,确认所有符号存在-------》如果符号不存在,也就是没有定义,就会报链接错误。运行比较好的做法:cpp文件放函数的定义,头文件放变量和函数的声明。这样,这个头文件可以被其它使用这个函数的文件include。由于这里是函数声明,所以可以任意多个文件include它。注意,cpp文件和头文件可以分别编译两个目标文件,在链接阶段进行链接。inclu原创 2021-04-01 11:47:32 · 595 阅读 · 1 评论 -
c++ learning resource
https://www.geeksforgeeks.org/c-plus-plus/https://www.studytonight.com/cpp/原创 2021-03-17 17:19:37 · 76 阅读 · 0 评论 -
软件库与硬件IP库
无论是软件还是硬件,都需要库的支持。这是因为复杂的设计都是由小的模块组成。但是这些小模块常常由第三方开发,第三方不想提供源代码。因此以库的形式提供模块,甚至库都是加密的。1 软件库软件库分静态链接库和动态链接库。因为库只在链接时需要,根据链接时刻。静态链接是在应用编译阶段,动态链接是在应用运行时刻。这里需要区分库的编译和应用的编译。实际上应用运行时,用户不会感觉命令有区别,都是执行应用的名字。静态库的编译目标文件命令:gcc -c静态库的创建命令:ar -crv动态库的编译目标文件命令:gcc原创 2021-02-23 18:06:44 · 191 阅读 · 0 评论 -
函数指针与动态绑定
int foo(int i){ return i + 1;}typedef int (*g)(int); // Declare typedefg func = &foo; // Define function-pointer variable, and initialiseint hvar = func(3); // Call function through pointer原创 2021-02-04 14:40:22 · 158 阅读 · 0 评论 -
STL反向迭代器
问题:有时想用反序去遍历map,但是不能用iter–。解决方法:stl有反向迭代器。注意:map是push并不是按固定的顺序push,而是随机的。这对于用正向,反向迭代器寻找第一个出现的key,有可能不是期望的。...原创 2020-11-16 14:37:59 · 162 阅读 · 0 评论 -
把变量的地址存放到字符串
问题:变量的地址,或者是指针指向的地址不能直接赋值给另一种变量。然而,我们常常需要用这个地址信息作为一些决策,比如总线地址数据的排列。解决方法:把地址作为字符存放在另一个变量中。1 c中可用sprintftlm_generic_payload * gp = new tlm_generic_payload();char tmp1[32];char tmp2[64];sprintf(tmp1, “%p”, tlm_gp);sprintf(tmp2, “%x”, tlm_gp);cout<&原创 2020-11-14 19:39:09 · 645 阅读 · 0 评论 -
c++几个面向对象概念
面向对象是指:抽象,封装,继承和多态。1抽象:减少细节,提取共性。解决方案:抽象类,接口类,纯虚方法2封装:隐藏数据,类只提供方法,访问数据成员。3多态:静态多态—overloading,同一个类中,多个同名函数动态多态–overridding,子类与父类中,同名函数,必须是虚函数才能实现overriding。如果没有virtual关键字,当子类对象赋值给父类指针时,永远执行的是父...原创 2020-03-19 21:50:56 · 236 阅读 · 0 评论 -
c++and java
尽管都是面向对象编程语言,今天发现c++ 与java有个比较大的不同就是main函数的位置。c++中main函数是一个特殊函数,不属于任何类。但是java中,main函数是一个类内函数。...原创 2020-03-19 20:57:06 · 94 阅读 · 0 评论 -
类与类的关系
1 继承关系2 包含关系原创 2020-03-19 09:55:41 · 190 阅读 · 0 评论 -
google unit test and cmake
比较好的介绍了google unit test,cmake,vscodehttps://www.youtube.com/watch?v=Lp1ifh9TuFI原创 2020-02-20 12:29:23 · 121 阅读 · 0 评论 -
c++ 测试方法和工具
一篇关于c++测试的文章,总结的比较好https://blog.csdn.net/wangjingqi930330/article/details/80735392测试工具常用google test(gtest,gmock)https://www.cnblogs.com/chengxuyuancc/p/6434660.html介绍c++ unit test frameworkhttps:...原创 2020-02-14 22:09:31 · 1897 阅读 · 0 评论