【C/C++】
文章平均质量分 83
C/C++中一些遇到的知识点记录
All_In_gzx_cc
这个作者很懒,什么都没留下…
展开
-
【C/C++】常用计时函数整理
目前,存在着各种计时函数,一般的处理都是先调用计时函数,记下当前时间tstart,然后处理一段程序,再调用计时函数,记下处理后的时间tend,再tend和tstart做差,就可以得到程序的执行时间,但是各种计时函数的精度不一样.下面对各种计时函数,做些简单记录.方法1,2,7,8可以在linux环境下执行,方法1,2,3,4,5,6可以在windows环境下执行.转载 2023-11-20 16:59:34 · 1092 阅读 · 0 评论 -
【Git】Git submodule常用指令
文章出自个人博客 https://knightyun.github.io/2021/03/21/git-submodule,总结的很详细,本文只做学习记录,方便自己查阅~转载 2022-12-13 15:02:03 · 6010 阅读 · 0 评论 -
【C/C++基础知识】子类成员函数如何调用父类成员函数
本文转载自:https://www.cnblogs.com/oddcat/p/11232415.html。转载 2022-09-16 15:41:10 · 3586 阅读 · 0 评论 -
【C/C++基础】模板简介
类模板和函数模板都是以template开头(也可以用class开头),后跟类型参数,类型参数不能为空,多个类型参数用逗号分隔开。template < class T1 , class T2 , . . . , class Tn > class xxx //类模板名 {//类成员定义 };一旦声明了类模板,就可以将类型参数用于类的成员函数和成员变量了。即原来使用int、float、char等内置类型的地方,都可以用类型参数来替代。转载 2022-09-15 13:50:57 · 499 阅读 · 0 评论 -
【C/C++基础】extern “C“ __declspec(dllexport)详解
具体请阅读blog。原创 2022-09-13 11:09:58 · 5740 阅读 · 0 评论 -
【计算机基础】多进程,多线程,多协程介绍
而同一个进程是由一个程序员的程序创建,所以同一进程内的线程是合作关系,一个线程可以访问另外一个线程的内存地址,大家都是共享的,一个线程干死了另外一个线程的内存,那纯属程序员脑子有问题。类似于进程,每个线程也有自己的堆栈,不同于进程,线程库无法利用时钟中断强制线程让出CPU,可以调用thread_yield运行线程自动放弃cpu,让另外一个线程运行。在多线程的操作系统中,通常是在一个进程中包括多个线程,每个线程都是作为利用CPU的基本单位,是花费最小开销的实体。也就说,每个应用程序都有一个自己的进程。原创 2022-09-06 15:39:43 · 2160 阅读 · 0 评论 -
【脚本语言】windows下bat文件常用语法学习
转载自:https://www.jianshu.com/p/02f6fe974cfd?原创 2022-08-03 09:38:30 · 2949 阅读 · 0 评论 -
【C/C++】C++的显式类型转换
转载自https仅作学习记录。转载 2022-07-29 16:51:37 · 396 阅读 · 0 评论 -
【C/C++】Segment Fault---内存中常见异常值解析
0xcccccccc由Microsoft的C++调试运行时库用于标记未初始化的栈内存0xcdcdcdcd由Microsoft的C++调试运行时库用于标记未初始化的堆内存0xfeeefeee由Microsoft的HeapFree()用于标记释放的堆内存0xabababab被微软的HeapAlloc()用来在分配的堆内存后标记“无人地带”的保护字节0xabadcafe启动此值以初始化所有可用内存以捕捉错误指针0xbaadf00d0xbadcab1e0xbeefcace、和。。...转载 2022-07-29 16:21:58 · 383 阅读 · 0 评论 -
【Git】Git如何clone别人的repo到自己的repo中
所以,我们可以理解为什么对于错误的文档删除操作,可用gitcheckout。——因为没登记过,Git所保留的是最近一次正确的files,checkout就好。参考Git版本管理图,我们可以直觉理解为任何文档修改都必须在Githistory文档(Hiddensystemfolder)中登记,否则Git不认。gitinit初始化一个本地的空的Gitrepository。如何拷贝一个他人的repo到自己的repo,并做修改。我用本地folder中转,将他人的repo拷贝至我的repo。......转载 2022-07-22 13:50:14 · 3364 阅读 · 0 评论 -
【C/C++】C++11常用的新特性整理
c++11建议:优先选用nullptr, 而非0或NULL2. constexpr关键字说明:算术类型,引用,指针类型属于字面值类型constexpr用于声明变量时表示该变量是一个编译期常量,变量必须是字面值类型constexpr用于声明函数时表示该函数可以在编译期得出运算结果C++11中constexpr函数必须遵守以下约定,在C++14中有所放宽:函数的返回类型和形参类型都必须是字面值类型函数体只能是一条return语句,其他语句不能在运行时执行任何操作,例如 空语句,原创 2022-07-14 19:46:34 · 1056 阅读 · 0 评论 -
【C/C++】预定义宏
c/c++预定义宏转载 2022-07-14 13:27:31 · 302 阅读 · 0 评论 -
【git基础】git merge使用简介
git merge 简介转载 2022-06-27 14:16:41 · 98622 阅读 · 2 评论 -
【c++基础】多态/虚函数:父类为形参,子类为实参时的传参情况
多态,虚函数/纯虚函数转载 2022-06-13 14:12:13 · 3472 阅读 · 0 评论 -
【c++基础】enum和enum class的使用区别
enum / enum class转载 2022-06-13 13:41:35 · 689 阅读 · 0 评论 -
【单元测试】如何测试c++中私有成员方法/变量?
如何测试c++中的私有成员方法/变量转载 2022-06-13 10:50:10 · 1953 阅读 · 0 评论 -
【git基础】git cherry-pick使用方法
git cherry-pick用法转载 2022-06-08 16:41:32 · 1086 阅读 · 0 评论 -
【Git】git遇到的问题收录
git遇到的问题收录原创 2022-06-05 18:42:17 · 527 阅读 · 0 评论 -
【Git基础】git常用命令和分支问题
git常用指令介绍转载 2022-06-05 18:25:14 · 176 阅读 · 0 评论 -
【基础知识】c++11新特性---类型名type{}
c++11新语法 type{} 变量初始化方式转载 2022-06-01 09:22:04 · 476 阅读 · 0 评论 -
【基础知识】c++的变量初始化
转载自:https://www.cnblogs.com/caidi/p/9679673.htmlC++中变量的初始化有很多种方式,如:默认初始化,值初始化,直接初始化,拷贝初始化,列表初始化。1、默认初始化默认初始化是指定义变量时 没有指定初值时 进行的初始化操作。如:int a;这些变量被定义了而没有显式的赋予初值。特别的,采用动态分配内存的方式(即采用new关键字)创建的变量,不加括号时(如int *p=newint;)也是默认初始化,加了括号(如int *p=new int()转载 2022-05-31 17:52:20 · 10314 阅读 · 0 评论 -
【基础知识】git提交代码时遇到代码库有更新以及本地有更新的解决方法
本文转自:https://blog.csdn.net/myphp2012/article/details/80519156情况一在多人协作开发时,经常碰到同事把最新修改推送到远程库,你在本地也做了修改,这个时候无论是执行git pull还是执行git push都会提示错误。解决方式如下:先隐藏掉本地的修改,然后执行git pull从代码块拉取最新代码,具体步骤如下:1.输入 git status 查看本地的修改2.输入git stash 隐藏掉本地修改3.输入 git pull 从代码转载 2022-05-31 13:54:28 · 4263 阅读 · 0 评论 -
【基础知识】LLVM与Clang简要介绍
转载自:https://www.jianshu.com/p/1367dad95445仅作个人学习记录什么是LLVMLLVM项目是模块化、可重用的编译器以及工具链技术的集合。美国计算机协会 (ACM) 将其2012 年软件系统奖项颁给了LLVM,之前曾经获得此奖项的软件和技术包括:Java、Apache、 Mosaic、the World Wide Web、Smalltalk、UNIX、Eclipse等等创始人:Chris Lattner,亦是Swift之父趣闻:Chris Latter本来转载 2022-05-26 16:59:50 · 4550 阅读 · 0 评论 -
【基础知识】c++中:与::的用法
单引号 :1. 继承class 派生类名 :继承方式 基类名如:class BaseClass { public : BaseClass();// 构造函数,无返回类型,可以有参数列表,这里省去 ~BaseClass();// 析构函数 } class SubClass:public BaseClass() { }2. 初始化参数列表如下:class Point{private: int X,Y;publi转载 2022-05-23 16:25:47 · 1622 阅读 · 1 评论 -
【C/C++】GoogleTest单元测试与代码覆盖率
本博客转载自 知乎,仅作学习记录,侵删~前言测试是软件开发过程中一个必须的环节,测试确保软件的质量符合预期。对于工程师自己来说,单元测试也是提升自信心的一种方式。直接交付没有经过测试的代码是不太好的,因为这很可能会浪费整个团队的时间,在一些原本早期就可以发现的问题上。而单元测试,就是发现问题一个很重要的环节。本文以C++语言为基础,讲解如何进行单元测试并生成测试报告。在工具上,我们会使用下面这些:GCCCMakeGoogle Testgcovlcov演示项目为了方便本文的讲解,转载 2022-05-10 14:36:03 · 3130 阅读 · 2 评论 -
【C/C++】string/stringstream简要介绍
string详解转载自:https://blog.csdn.net/liitdar/article/details/82598039https://blog.csdn.net/lyj2014211626/article/details/72771320仅作学习记录~一、stringstring 是 C++ 提供的字串型態,和 C 的字串相比,除了有不限长度的优点外,还有其他许多方便的功能。要使用 string, 必須先加入这一行:#include 接下來要宣告一个字串变量,可以写成:stri转载 2022-03-14 15:47:36 · 2596 阅读 · 0 评论 -
【C/C++】面试常问知识点(1)
转载自:https://blog.csdn.net/kuweicai/article/details/82779648仅作学习使用~第一部分:计算机基础1. C/C++内存有哪几种类型?C中,内存分为5个区:堆(malloc,new)、栈(如局部变量、函数参数)、程序代码区(存放二进制代码)、全局/静态存储区(全局变量、static变量)常量存储区(常量)。此外,C++中有自由存储区(new)一说。全局变量、static变量会初始化为缺省值,而堆和栈上的变量是随机的,不确定的。2转载 2021-11-28 23:16:16 · 309 阅读 · 0 评论 -
【C/C++】八股文/常问知识点(2)
转载自:https://blog.csdn.net/weixin_43519366/article/details/118634870仅作学习使用~侵删1 变量的声明和定义有什么区别变量的定义为变量分配地址和存储空间, 变量的声明不分配地址。一个变量可以在多个地方声明, 但是只在一个地方定义。加入extern 修饰的是变量的声明,说明此变量将在文件以外或在文件后面部分定义。说明:很多时候一个变量,只是声明不分配内存空间,直到具体使用时才初始化,分配内存空间, 如外部变量。int main(转载 2021-11-22 23:15:05 · 2413 阅读 · 0 评论 -
【c/c++】STL中 结构体的运算符重载
转载自: https://www.cnblogs.com/ssfzmfy/p/13175332.html背景C++中,结构体是无法进行==,>,<,>=,<=,!=操作的,如要使用这些操作符对结构体进行操作,则可以在结构体内部对这些运算符进行重载,将结构体的比较转化为结构体内部的数字或者字符的比较。实际编程中,大部分时候操作对象是结构体数组,尤其是在使用STL容器的时候,如果我们可以往语句中传入结构体,一些事情将会变得很简单。因此掌握结构体运算符的重载是非常必要的。重载的转载 2021-11-03 16:58:03 · 1029 阅读 · 0 评论 -
【基础知识】python和C中变量的区别,python赋值、浅拷贝、深拷贝的区别
一、python和C中变量的区别总结C中变量有类型,代表一定内存。而Python变量只是封装过的指针(指针变量的局限性在python中却没有),没有类型。如果不指向对象,就没有意义,更谈不上类型。这也是python中一个变量名可以随便更改类型赋值的原因。python中 a=b,和C中 a=b是完全不同的两个操作。前者只是指针(引用)的赋值,而后者则完全是内存的复制。本质1. C语言其他语言的变量有"variables"比如c语言中,定义一个变量,就是把值放到变量盒子(一块原创 2021-09-17 15:32:12 · 829 阅读 · 0 评论 -
【C/C++】多线程编程攻略
一、前言之前转载过4篇很好的文章,链接如下:多线程入门1多线程入门2多线程入门3多线程入门4本片只是做一个简略介绍,详细示例教学可以看上面4篇。下面是对 一些定义,函数接口的简单介绍。二、相关 知识点 简介额外补充一个很好的 C/C++多线程编程教程当启动一个程序时,操作系统创建一个进程,并在该进程中执行程序。一个进程包括一个或多个线程。每个线程又是一个局部进程,它以独立于其他局部进程的方式执行一个命令序列。当进程启动时,它的主线程则成为活动线程。这时,任何正在运行的线原创 2021-09-11 15:03:24 · 541 阅读 · 0 评论 -
【基础知识】C/C++关键字:auto,static,extern,register,volatile,explicit
c++关键字转载 2021-07-16 17:31:27 · 487 阅读 · 0 评论 -
【基础知识】C语言条件编译
转载自:http://c.biancheng.net/view/449.html ,仅作学习记录~概述条件编译(conditional compiling)命令指定预处理器依据特定的条件来判断保留或删除某段源代码。 例如,可以使用条件编译让源代码适用于不同的目标系统,而不需要管理该源代码的各种不同版本。如下图:**条件编译区域以 #if、#ifdef 或 #ifndef 等命令作为开头,以 #endif 命令结尾。**条件编译区域可以有任意数量的 #elif 命令,但最多一个 #else 命令。以转载 2021-07-15 17:15:47 · 811 阅读 · 0 评论 -
【基础知识】extern 和 extern “C“详解
转载自:http://c.biancheng.net/view/404.html,仅作学习记录~extern我们知道,程序的编译单位是源程序文件,一个源文件可以包含一个或若干个函数。在函数内定义的变量是局部变量,而在函数之外定义的变量则称为外部变量,外部变量也就是我们所讲的全局变量。它的存储方式为静态存储,其生存周期为整个程序的生存周期。全局变量可以为本文件中的其他函数所共用,它的有效范围为从定义变量的位置开始到本源文件结束。然而,如果全局变量不在文件的开头定义,有效的作用范围将只限于其定义处到文件结转载 2021-07-15 16:40:38 · 1249 阅读 · 0 评论 -
【基础知识】对于常量的字符串针指char*和字符串数组char[]的区别
文章转载自:https://www.cnblogs.com/yiyide266/p/13555852.html一、概述在偶然一次尝试使用unix函数mkdtemp的时候发现一个问题,函数有一个唯一参数template是一个字符串指针,它的声明如下:char *mkdtemp(char *template);当我声明一个指针形式的字符串指针,并传入mkdtemp的时候,出现了Segmentation fault的报错,代码如下:#include <stdio.h>#include &转载 2021-07-12 17:35:00 · 251 阅读 · 0 评论 -
【C/C++】指针的思考与注意:空指针,指针赋值,void*指针,二级指针,结构体指针,指向同一地址的多个指针释放问题
部分参考自:https://blog.csdn.net/u012351051/article/details/967537031. 啥是指针指针是地址,而不是具体的标量值,这是指针的精髓,不管是一级指针、二级 指针、 整型指针、浮点数指针、结构体指针等等等等所有类型的指针,内容都是个地址,而指针本身当然也是有地址的,而且容易忽略的是,不管这个指针指向的类型多么复杂,比如一个特别大的结构体,它的指针和一个 char型指针的大小本质上是一样的,因为指针就是起始地址。 正式由于这个原因,(void )型指针才原创 2021-07-08 20:09:16 · 1507 阅读 · 4 评论 -
【编程工具】VSCode快捷键整理
常用搜索Ctrl + F:查找Ctrl + H:替换行操作剪切一行:Ctrl+X复制一行:Ctrl+C删除一行:Ctrl+Shilft+KAlt+ ↑ / ↓:向上/向下移动行 Move line up/downShift+Alt + ↓ / ↑:向上/向下复制行 Copy line up/down导航F12 转到定义Alt + ←/→ :返回/前进 Go back / forward完整版...转载 2021-07-05 16:41:36 · 174 阅读 · 0 评论 -
【c/c++】静态链接库与动态链接库的联系与区别
一、定义1.1 静态库(.lib / .a)一种是LIB包含函数代码本身,在编译时直接将代码加入程序当中,称为静态链接库static link library。函数和数据被编译进一个二进制文件(通常扩展名为.LIB)。在使用静态库的情况下,在编译链接可执行文件时,链接器从库中复制这些函数和数据并把它们和应用程序的其他模块组合起来创建最终的可执行文件(.EXE文件)。当发布产品时,只需要发布这个可执行文件,并不需要发布被使用的静态库。1.2 动态库(.dll / .so)一种是LIB包含了函数所原创 2021-06-11 11:41:03 · 2535 阅读 · 2 评论 -
【c/c++】组件代码linux化编译及验证常见错误记录
在编译过程中若是遇到段错误,可参考一下链接:Linux下调试段错误的方法[Segmentation Fault]–GDBSegmentation Fault错误原因总结如果定位不到问题所在,最简单粗暴的方法就是:把cmakelists.txt所有依赖库都注释掉,重新编译,报缺少什么依赖库再加入什么,排除掉多余或有问题的依赖库;在代码中各处关键位置加入print语句,编译运行,看是停在那边,逐步缩小问题代码范围;第二步这样也可以:把主调函数main函数全部注释,从头一点点取消注释逐步编译,定.原创 2021-06-11 10:39:03 · 352 阅读 · 0 评论 -
【基础知识】cmake和makefile详解
一、什么是程序的编译和链接关于程序编译的一些规范和方法一般来说,无论是C、C++、还是pas,首先要把源文件编译成中间代码文件,在Windows下也就是 .obj 文件,UNIX下是 .o 文件,即 Object File,这个动作叫做编译(compile)。然后再把大量的Object File合成执行文件,这个动作叫作链接(link)。编译时,编译器需要的是语法的正确,函数与变量的声明的正确。对于后者,通常是你需要告诉编译器头文件的所在位置(头文件中应该只是声明,而定义应该放在C/C++原创 2021-05-26 17:01:19 · 439 阅读 · 0 评论