c/c++
山野6
这个作者很懒,什么都没留下…
展开
-
gdb自动化打印命令
gdb调试原创 2022-07-17 11:42:00 · 842 阅读 · 1 评论 -
程序编译链接的过程
编译链接原创 2022-07-04 01:01:37 · 152 阅读 · 0 评论 -
编译链接分析的几个常用命令
readelf objdump原创 2022-07-03 11:29:55 · 168 阅读 · 0 评论 -
c++对象模型1
c++ 对象模型原创 2022-06-25 00:00:21 · 204 阅读 · 0 评论 -
cmake
c++ 编译1.基础编译命令a. 命令如下:gcc main.cpp -I ../include/ -L ../lib -lhello -o demob. 说明-I 指定头文件路径-L 指定静态库路径-l 说明链接的库名字编译成的二进制文件为demo备注: 对于动态库需要指定动态库路径,命令:export LD_LIBRARY_PATH=./lib2. cmake命令以cm...原创 2019-12-30 00:19:34 · 258 阅读 · 0 评论 -
数据类型的本质
先说结论:数据类型可以理解为固定内存大小的别名变量的本质是名字,是内存地址的别名我们可以通过反汇编查看程序对应的汇编语言,了解其具体实现。让我们先通过下面的例子了解下汇编语言:void func (){int nA = 0x10;//就是这句了int nB = 12323;//......}mov dword ptr [ebp-4], 10h mov 是指令...原创 2019-12-09 00:13:40 · 366 阅读 · 0 评论 -
C语言时间计算
时间计算1. clock函数精确度为秒clock函数返回从程序开始执行起处理器始终滴答的次数,为了把这个值转化为秒,应该除以CLOCKS_PER_SEC#include<time.h>#include<stdio.h>#include<unistd.h>int main(){ clock_t t_begin,t_end; t_...原创 2019-12-01 18:50:38 · 4518 阅读 · 0 评论 -
C语言编译
参考https://blog.csdn.net/wordwarwordwar/article/details/849321831.include实质:将包含的h文件内容全部展开,然后进行编译2.使用时注意:尽量不要在头文件中定义并实现函数,容易造成重复包含的问题3.如何避免重复对于c++,使用#pragma once对于c语言,可以使用条件编译指令#ifndef...原创 2019-11-17 12:54:33 · 108 阅读 · 0 评论 -
cmake增加编译宏
通过增加编译宏实现条件编译ADD_DEFINITIONS(-D宏名称-D宏名称......)camke文件如下:cmake_minimum_required(VERSION 2.8)PROJECT (hello)SET(SRC_LIST main.c)MESSAGE(STATUS "This is BINARY dir " ${HELLO_BINARY_DIR})MESSA...原创 2019-11-17 12:46:04 · 32844 阅读 · 0 评论 -
指针数组
指针数组stCam* a[5]考虑结合的先后顺序,[ ]优先级最高,所以是一个数组,数组里面存放的是结构体stCam的指针#include <iostream>struct stCam{ int a;};struct stCamInfo{ /*指针数组,数组里面存放的是stCam结构体的指针*/ stCam* a[5];};int main()...原创 2019-08-15 20:21:07 · 145 阅读 · 0 评论 -
boost库安装
https://blog.csdn.net/ericlxm/article/details/90056365转载 2019-12-08 23:04:35 · 85 阅读 · 0 评论 -
智能指针的使用和原理
weak_ptr是为了配合shared_ptr而引入的一种智能指针它不具有普通指针的行为,没有重载operator*和->,它的最大作用在于协助shared_ptr工作,像旁观者那样观测资源的使用情况。weak_ptr可以从一个shared_ptr或者另一个weak_ptr对象构造,获得资源的观测权。 weak_ptr没有共享资源,它的构造不会引起指针引用计数的增加 ...原创 2019-07-07 19:45:47 · 199 阅读 · 0 评论 -
0623-多线程和锁
多线程和锁https://blog.csdn.net/fawdlstty/article/details/49492197https://blog.csdn.net/WizardtoH/article/details/81452066当 std::condition_variable 对象的某个 wait 函数被调用的时候,它使用 std::unique_lock(通过 std::mu...转载 2019-06-23 23:31:38 · 108 阅读 · 0 评论 -
std::bind的使用
bind和fucntion使用bind函数可以看作一个通用的函数适配器,它接受一个可调用对象,生成一个新的可调用对象来“适应”原对象的参数列表即通过bind可以调整函数的参数数量,将这个函数可以作为函数指针传入。bind调用的一般形式 auto newCallable = bind(callable,arg_list)以下代码进行了三种不同形式的调用1. auto a ...原创 2019-07-08 12:44:24 · 169 阅读 · 0 评论 -
map的基本使用
参考https://www.cnblogs.com/leehm/p/10682560.html// 5.map的简单使用.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。/*1.下标方式是通过重载[]操作符来实现的,它直接进行插入或覆盖, insert方法会判断是否存在相同的key,如果存在则直接返回,放弃插入操作。如果不存在才进行插入。2.查找元素下标方...原创 2019-07-04 00:15:07 · 136 阅读 · 0 评论 -
浅谈C中的malloc和free
一、malloc()和free()的基本概念以及基本用法:1、函数原型及说明:void *malloc(long NumBytes):该函数在堆上分配了NumBytes个字节的空间,并返回了指向这块内存的指针。如果分配失败,则返回一个空指针(NULL)。关于分配失败的原因,应该有多种,比如说空间不足就是一种。void free(void *FirstByte): 该函数是将之前用m...转载 2018-10-28 16:16:40 · 106 阅读 · 0 评论 -
std::move移动原理
调用std::move,告诉编译器:我们有一个左值,我们希望向右值一样使用它。调用move意味着承诺:除了对rr1赋值或销毁它外,我们将不再使用它(不能使用移后源对象的值)。为什么区分左右值为了函数重载,调用拷贝构造函数还是移动构造函数参考:https://blog.csdn.net/p942005405/article/details/84644069https://zhua...原创 2019-09-11 11:05:45 · 551 阅读 · 0 评论 -
智能指针计数
1.智能指针是一个对象。作为成员,对象析构时,也会调用它的析构,计数减12.reset用于释放当前对象,计数减一,指向新对象3.引用的本质是const ptr,所以函数传参智能指针引用并不会拷贝对象,智能指针计数并不会加1#include<iostream>#include<string>#include<vector>#include<...原创 2019-09-24 17:51:45 · 461 阅读 · 0 评论 -
0620-lamda表达式
explicit关键字https://www.cnblogs.com/winnersun/archive/2011/07/16/2108440.htmlc++仿函数https://www.cnblogs.com/decade-dnbc66/p/5347088.htmlc++lamdahttps://blog.csdn.net/u010984552/article/detail...转载 2019-06-20 00:46:47 · 100 阅读 · 0 评论