avatar
文章
864
标签
158
分类
0

主页
文章归档
文章标签
文章归类
文章列表
  • Music
  • Movie
友情链接
关于我
麦溪·在路上
主页
文章归档
文章标签
文章归类
文章列表
  • Music
  • Movie
友情链接
关于我

麦溪·在路上

C语言结构体基础学习
发表于2022-01-05
[TOC] 概述文章参考:https://mp.weixin.qq.com/s/y_13EhfJV8VkjAPEEOhxEw C 语言的内存管理,分成两部分。一部分是系统管理的,另一部分是用户手动管理的。 系统管理的内存,主要是函数内部的变量(局部变量)。这部分变量在函数运行时进入内存,函数运行结束后自动从内存卸载。这些变量存放的区域称为”栈“(stack),”栈“所在的内存是系统自动管理的。 用户手动管理的内存,主要是程序运行的整个过程中都存在的变量(全局变量),这些变量需要用户手动从内存释放。如果使用后忘记释放,它就一直占用内存,直到程序退出,这种情况称为”内存泄漏“(memory leak)。这些变量所在的内存称为”堆“(heap),”堆“所在的内存是用户手动管理的。 void 指针前面章节已经说过了,每一块内存都有地址,通过指针变量可以获取指定地址的内存块。指针变量必须有类型,否则编译器无法知道,如何解读内存块保存的二进制数据。 但是,向系统请求内存的时候,有时不确定会有什么样的数据写入内存,需要先获得内存块,稍后再确定写入的数据类型。 为了满足这种需求,C 语言提供了一种不定 ...
C++中代码风格实践
发表于2022-01-05
[TOC] 文章参考:https://zh-google-styleguide.readthedocs.io/en/latest/google-cpp-styleguide/ 概述SonarLint代码问题:Polymorphic base class destructor should be either public virtual or protected non-virtual多态基类析构函数应该是 public virtual 或 protected non-virtual 当没有virtual析构函数的类用作基类时,如果使用指向此类实例的指针,则会发生意外。具体来说,如果派生类的实例是delete通过指向基类型的指针来创建的,则行为是未定义的,并且可能导致资源泄漏、崩溃或内存损坏。 如果不希望删除基类指针,则应使析构函数protected避免这种误用。 不合规代码示例 12345678910111213class Base { // Noncompliant: no destructor is supplied, and the default version i ...
C++中函数指针相关学习
发表于2022-01-05
[TOC] 概述指针变量可以用来指向已定义变量的地址,再通过指针间接存取该变量的内容。其实在C++中,指针变量也可以声明为指向函数的起始地址,并借助该指针变量来调用函数。这种指向函数的指针变量被称为函数指针(Pointer of Function),主要是可使用同一个函数指针名称在程序运行期间动态地决定所要调用的函数。 声明函数指针函数指针可能会让大家稍微伤点脑筋,不过多花点心思研究倒也不难。基本上,函数指针与一般指针一样,都是用来存储地址值的。当C++程序运行时,系统会给函数分配内存空间,用来存储该函数的程序代码。当调用该函数时,程序流程就会跳至此函数的起始地址,并从这个地址开始往下执行函数。 也就是说,函数名称其实也是一个指针变量,其本身所存储的值为函数内容所在内存的起始地址。如果将函数指针指向该函数的起始地址,就可以在程序中通过函数指针来调用该函数。函数指针的声明格式如下: 1返回数据类型 (*函数指针名称)(参数1数据类型,参数2数据类型,…); 以下是函数指针的合法声明实例: 1234void (*ptr)(void); // ptr为函数指针,而此函数本身无返回值与参数i ...
Android之性能监控框架
发表于2022-01-05
[TOC] 文章参考:http://c.biancheng.net/view/187.html 概述C语言中,可以用 #define 定义一个标识符来表示一个常量。其特点是:定义的标识符不占内存,只是一个临时的符号,预编译后这个符号就不存在了。 预编译又叫预处理。预编译不是编译,而是编译前的处理,编译器正式开始编译程序之前,会执行一段预处理程序(又称预处理器)专门对程序执行预处理操作。 C语言程序从编写到运行要经过预处理、编译、汇编和链接这 4 个阶段,但大多数人习惯将前 3 个阶段统称为编译阶段,所以才有了“程序要经过编译和链接后才能运行”的说法。关于各个阶段到底做了哪些工作,C语言程序又是怎样一步步转换为可执行程序的,感兴趣的读者请猛击这里了解详情。 # define用 #define 定义标识符的一般形式为: 1#define 标识符 常量 //注意, 最后没有分号 #define 和 #include 一样,也是以“#”开头的。凡是以“#”开头的均为预处理指令,#define也不例外。 #define又称宏定义,标识符为所定义的宏名,简称宏。标识符的命名规则与前面讲的 ...
Android之性能监控框架
发表于2022-01-05
[TOC] 文章转自:https://www.cnblogs.com/ailumiyana/p/10721123.html#cmake_verbose_makefile 文章参考:https://www.cnblogs.com/welhzh/p/7466640.html 概述cmake是一个跨平台的编译工具,不但能生成类unix系统下的makefile还能生成windows下project文件,这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。说白了一句话:跨平台的C编译工具 使用方法cmake所的所有语句写在CMakeLists.txt中,因为cmake生成makefile或project然后在编译时会生成很多中间文件,打乱项目文件结构,所以我们一般新建一个build目录,在里面编译。基本操作只需要二步即可 :1、cmake CMakeLists.txt文件目录2、make3、如果配置了安装路径,还可以进行make install 等. cmake的常用知识cmak ...
C++之static静态成员变量学习
发表于2022-01-05
[TOC] 概述对象的内存中包含了成员变量,不同的对象占用不同的内存(已在《C++对象的内存模型》中提到),这使得不同对象的成员变量相互独立,它们的值不受其他对象的影响。例如有两个相同类型的对象 a、b,它们都有一个成员变量 m_name,那么修改 a.m_name 的值不会影响 b.m_name 的值。 可是有时候我们希望在多个对象之间共享数据,对象 a 改变了某份数据后对象 b 可以检测到。共享数据的典型使用场景是计数,以前面的 Student 类为例,如果我们想知道班级中共有多少名学生,就可以设置一份共享的变量,每次创建对象时让该变量加 1。 在C++中,我们可以使用静态成员变量来实现多个对象共享数据的目标。静态成员变量是一种特殊的成员变量,它被关键字static修饰,例如: 1234567891011class Student{public: Student(char *name, int age, float score); void show();public: static int m_total; //静态成员变量private: c ...
Android之性能监控框架
发表于2022-01-05
[TOC] c++11条款学习文章参考:https://blog.csdn.net/coolmeme/article/details/43405155 条款21:尽量使用std::make_unique和std::make_shared而不直接使用new ​ 让我们从对齐std::make_unique 和 std::make_shared这两块开始。std::make_shared是c++11的一部分,但很可惜std::make_unique不是。它是在c++14里加入标准库的。假如你在使用c++11,也别担心,你很容易写出一个基本的版本。看这里: 123456template<typename T, typename... Ts>std::unique_ptr<T> make_unique(Ts&&... params){ return std::unique_ptr<T>(new T(std::forward<Ts>(params)...));}
Android之性能监控框架
发表于2022-01-05
[TOC] 概述在程序中获取系统时间是常见的操作,很多情况下使用系统提供的time函数即可获取。
Android之性能监控框架
发表于2022-01-05
[TOC] 文章参考:https://blog.csdn.net/shift_wwx/article/details/78742459 概述今天在看vector.h的时候,碰到一个using的奇怪用法,才疏学浅之前没有碰到过,整理一下。 来看下source code: 1234567891011121314151617181920212223242526272829template<class _Ty, class _Alloc = allocator<_Ty>> class vector : public _Vector_alloc<_Vec_base_types<_Ty, _Alloc>> { // varying size array of valuesprivate: // 定义一个别名 _Mybase using _Mybase = _Vector_alloc<_Vec_base_types<_Ty, _Alloc>>; // 定义一个别名 _Alty using _Alty ...
Android之性能监控框架
发表于2022-01-05
[TOC]
1…262728…87
avatar
Frewen.Wang
在青麦地上跑着,雪和太阳的光芒
文章
864
标签
158
分类
0
关注我
公告
This is my Blog
最新文章
无题2023-12-22
无题2023-07-28
无题2023-07-27
基于Windows11安装Ubuntu双系统2023-07-20
无题2023-07-17
标签
系统源码 滤波算法 工具使用 云存储 卷积神经 Linux Android框架 STL函数 Activity pytorch NEON 编译脚本 go 渲染机制 OpenGL 编程工具 虚函数 RectNative JVM Linux命令 Kotlin基础 OpenMP AI const IDEA QNN C++ SELinux 目标检测 软件安装 threading 量化方法 四大组件 编译构建 SystemServer 开源项目 unique_ptr Java基础 系统安装 BroadcastReceiver
归档
  • 十二月 20231
  • 七月 20234
  • 六月 20231
  • 四月 20231
  • 三月 20232
  • 二月 202311
  • 一月 20232
  • 十二月 20221
网站资讯
文章数目 :
864
本站总字数 :
778.1k
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2023 By Frewen.Wang
框架 Hexo|主题 Butterfly