C/C++
月上柳青
这个作者很懒,什么都没留下…
展开
-
C/C++ struct 的回调函数使用技巧
使用struct 回调函数可以使得代码更加清晰明了话不多说上代码:1.定义回调函数的原型typedef int STRU_FU;STRU_FU sfun1(int a, const char *b){ printf("fun1 a = %d , b = %s \n",a,b); return a;}STRU_FU sfun2(int a, void *b,float c){ printf("fun2 a = %d , b = %f \n",a,c); ret.原创 2020-05-11 10:54:17 · 1912 阅读 · 0 评论 -
struct 初始化和使用技巧
使用. 的初始化比较方便可以参考使用;可以初始化完直接定义一个指针 初始化为自己的结构体;#include <stdio.h>#include <string.h>#include <pthread.h>#include <stdlib.h>typedef struct _w{ int l,wr; char *w; long lg; char ww[1024];}ww;typedef struct _Cw{ int .原创 2020-05-09 16:39:03 · 434 阅读 · 0 评论 -
指针和引用的区别
1.使用引用传递提高效率如果输入参数以值传递的方式传递对象,则宜改用“const &”方式来传递,这样可以省去临时对象的构造和析构过程,从而提高效率2.不用混正常值的要和错误标志正常值使用输出参数获得,错误码用返回值获取。3. 有些时候函数不需要返回值,为了实现链式表达增加灵活性例如字符串拷贝函数 strcpy 的原型:char *strcpy(c...原创 2019-10-19 16:49:57 · 1160 阅读 · 1 评论 -
C++:引用的简单理解
C++:引用的简单理解前言:引用是C++一个很重要的特性,最近看了很多有关引用的资料和博客,故在此对引用的相关知识进行总结一、什么是引用引用,顾名思义是某一个变量或对象的别名,对引用的操作与对其所绑定的变量或对象的操作完全等价语法:类型 &引用名=目标变量名;特别注意:1.&不是求地址运算符,而是起标志作用2.引用的类型必须和其所绑定的变量的类型相同...转载 2019-04-17 10:13:43 · 297 阅读 · 0 评论 -
c++ 构造函数的初始化表,内联函数,const使用注意,-拷贝构造函数和赋值构造函数使用方法
/* -构造函数的初始化表: 构造函数有个特殊的初始化方式叫“初始化表达式表”(简称初始化表)。初始化表 位于函数参数表之后,却在函数体 {} 之前。这说明该表里的初始化工作发生在函数体 内的任何代码被执行之前 使用规则: 1)如果类存在继承关系,派生类必须在其初始化表里调用基类的构造函数 2)类的 const 常量,只能在初始化表里被初始化,因为它不能在函数体内用赋值的方式来初始化...原创 2019-04-22 19:21:38 · 381 阅读 · 0 评论 -
c++ 动态内存思考 -- 注意动态内存操作和杜绝 野指针 常见面试题解析 (二)
参考 林锐博士的 高质量c++ 的书做测试的实例1)使用动态内存的注意点2)杜绝野指针3)c++ 常见考点/** @内存分配方式3种* 1) 静态区创建 如全局变量 静态变量* 2) 栈上创建 函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放* 3)堆上分配 由程序员 通过 malloc new 任意大小的memory 生存周期由我们自...原创 2019-04-19 11:20:30 · 427 阅读 · 0 评论 -
C++ 常见面试题及概念注意点总结
c++ part1-1多态 & virtual什么是多态,怎么实现多态的?(1)多态即:一个接口多个实现(2)编译时多态(静态多态): 通过重载实现,编译器决定使用那个可执行的代码块。(3)运行时多态(动态多态): 用过继承机制和虚函数实现,通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数。1-2基类用virtual虚析构函数:C++中基类采用virtual虚析...原创 2019-06-16 10:35:39 · 437 阅读 · 0 评论 -
单例模式-简单线程安全的实现方式
/*** * 为什么说 饿汉式是线程安全的 * 因为在线程访问之前,单例类就已经创建好自己的实例的引用了 ,并且再一个生命周期中一个类只会被加载化一次使用场景:有状态的工具类对象频繁访问文件或者数据库的类对象 ****/#include <iostream>using namespace std;class Single{ public: static S...原创 2019-07-12 18:23:55 · 602 阅读 · 0 评论 -
华为机试题--计算最后一个单词长度
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190728221718279.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lhbmdfcXVhbl95YW5n,size_16,color_FFFF...原创 2019-07-28 22:24:10 · 110 阅读 · 0 评论 -
华为机试-输入字符串 输出重复的字符个数 例如 输入 aaabbcc 输出 a:3,b:2,c:2
/**** * 输入字符串 输出重复的字符个数 * 例如 输入 aaabbcc * 输出 a:3,b:2,c:2****/#include<iostream>#include<string.h>#include<stdio.h>#include <iomanip>using namespace std;void...原创 2019-07-23 09:55:46 · 1028 阅读 · 0 评论 -
怎么从一个字符串里面找到所指定的 字符strstr()用法
主要用 strstr() 函数;头文件是 #include <string.h>返回值是 子串的位置;例如我要找一个/. 的文件夹名称代码如下:#include<iostream>#include<string>#include <string.h>using namespace std;int main(){ ...原创 2019-09-09 16:10:56 · 622 阅读 · 0 评论 -
unordered_map的使用方法,如何把数据一对一的关系放到数据结构里面
如何将,数据一对一的关系存到数据结构里面,然后想要调用的时候,再去find,找到key值后,执行相应的操作。优缺点map:优点: 有序性,这是map结构最大的优点,其元素的有序性在很多应用中都会简化很多的操作 红黑树,内部实现一个红黑书使得map的很多操作在lgn的时间复杂度下就可以实现,因此效率非常的高缺点: 空间占用率高,因为map内部实现了红黑树,虽然提高了运行...原创 2019-09-09 16:46:46 · 681 阅读 · 0 评论 -
c++ & 对象用法,new用法 ,多态,virtual 虚函数用法(完全解析)
& 引用用法 在C++中 除了有继承关系的class 中多态用法,外还有两个类中 引用的效果:测试代码如下/** c++ 基本知识回顾* * new 的使用方法* ************************************ new 三个动作 :获得一块内存空间、调用构造函数、返回正确的指针* virtual 虚函数的使用方法* socket send ...原创 2019-04-13 16:42:15 · 1113 阅读 · 0 评论 -
uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型 - 大总结,看完全明白了
uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型在nesc的代码中,你会看到很多你不认识的数据类型,比如uint8_t等。咋一看,好像是个新的数据类型,不过C语言(nesc是C的扩展)里面好像没有这种数据类型啊!怎么又是u又是_t的?很多人有这样的疑问。论坛上就有人问:以*_t结尾的类型是不是都是long型的?在baidu上查一下,才找到答案,...转载 2019-04-13 16:23:19 · 586 阅读 · 0 评论 -
Linux C 怎么检测网络状态
Linux C 怎么检测网络状态#include #include#include ping_check (char *gateway_str){ printf("ping_check ::gateway_str -- %s\n",gateway_str); FILE *fp; size_t len = 0; char *pos; int r原创 2017-11-27 10:14:47 · 3618 阅读 · 0 评论 -
linux环境下载和编译TRDP源码
TRDP是列车通信网络(Train communication network TCN)中以太网通讯网络(Ethernet Consist Network ECN)的标准。此标准制定的主要原因是目前列车通讯的数据量剧增,而传统列车总线无法满足大数据量传输,所以采用以太网通讯,可以满足数据的传输要求。比如车载广播系统、视频系统、下载固件程序等,由于其在价格相对MVB,较低廉,速度快,数据量大等优点,使原创 2017-12-22 11:48:46 · 5354 阅读 · 14 评论 -
GCC GDB 使用方法和原理
•编译流程–GCC编译流程分为四个步骤:编译预处理、编译、汇编和链接:–预编译(Pre-Processing) 预编译是在程序被编译之前为编译器所做的一些准备工作,主要是拷贝包含的头文件到源程序文件、进行宏替换和处理条件编译。我们使用-E选项来使得GCC编译器在完成预处理后停止执行。如:–编译(Compiling) 在这个阶段中,GCC编译器首先要检查代码的规范性,有无语法错误,检查无误后再将...原创 2018-07-11 10:11:44 · 1034 阅读 · 1 评论 -
Clips语言与Qt C++的交互 制作炫酷动态图表
最近做一个clips 做业务处理,C++ 做显示的项目,一些积累的东西和大家分享C++ 数据传递到QML1.C ++ 部分qmlRegisterUncreatableType() //函数定义qml的importQQmlApplicationEngine rootContext()->setContextProperty() //传递数据类emit setdata ...原创 2018-11-23 22:53:15 · 750 阅读 · 0 评论 -
vector 对象类型用法
/*** - 删除 某一个范围的 vector 的元素 可以使用 remove_if() - 练习使用 vector 对象类型的对象***/#include <iostream>#include <vector>#include <string>#include <algorithm>using namespace std;c...原创 2019-03-05 15:58:04 · 1805 阅读 · 0 评论 -
C++ map 和 hash_map基本用法 遍历- 插入- find -释放 memory - 对象类型的操作 -remove_if 的替代方法
/*** * 练习map和 hash_map 的基本用法 * insert 插入 * map 遍历 * map find * object 的成员在一定范围 的find remove_if() 的替代方法 * map erase * map delete key-value * map modify data * 交换 两个map * map vector 的memory 的...原创 2019-03-06 19:56:27 · 7136 阅读 · 1 评论 -
C/C++ 工程中带有时间戳 写入文件并且支持多线程 log日志文件的生成
/**** 一般的软件工程中,日志的作用都非常大,下面介绍一种c/c++代码生成日志的方法* 支持带有时间戳;写入文件并不造成覆盖;支持多线程,进程* 封装成 3种格式:debug,error,inf,三种输出* 自定义 log文件的位置* 自定义定义log文件的大小 超过则删除* access() F_OK 值为0,判断文件是否存在 R_OK 值为4,判断对文件是否...原创 2019-03-09 14:39:05 · 2357 阅读 · 1 评论 -
vector 基本用法
/********** * Vector<类型>标识符 Vector<类型>标识符(最大容量) Vector<类型>标识符(最大容量,初始所有值) Int i[5]={1,2,3,4,5} Vector<类型>vi(I,i+2);//得到i索引值为3以后的值 Vector< vector<...原创 2019-03-04 19:16:35 · 354 阅读 · 0 评论 -
Linux多线程 -互斥锁 pthread_mutex
/* review sem for pthread && pthread_mutex * c++ virtual function use * pthread_mutex 使用场景:多线程操作global变量&&share function时(互斥) * */#include <stdio.h>#include <stdlib.h&g...原创 2019-04-04 17:54:01 · 580 阅读 · 0 评论 -
c/c++ 关于内存的思考(一)
1.void GetMemory(char *p){ p = (char *)malloc(100);} void Test(void){ char *str = NULL; GetMemory(str); strcpy(str, "hello world"); printf(str);}请问运行Test函数会有什么样的结果?答:程序崩溃。因为GetMemo...原创 2019-04-10 15:19:00 · 173 阅读 · 0 评论 -
Linux多线程 -信号量
/* review sem for pthread && pthread_mutex * c++ virtual function use * pthread_mutex 使用场景:多线程操作global变量&&share function时(互斥) * */#include <stdio.h>#include <stdlib.h&g...原创 2019-04-08 20:13:47 · 171 阅读 · 0 评论 -
c++ 进程间心跳检测--socket (UDP)
目录代码结构如下:代码解析:check tread:receive tread:send tread:完整代码工程下载:编译代码方式:功能实现:可以检测 进程是否 live 或者 僵死,然后根据具体状态,发signal 处理被检测的进程demo 有两个进程 一个是 server 另一个是 client (可以有多个)(send && rece...原创 2019-04-09 20:07:39 · 3772 阅读 · 0 评论 -
C++ 基本概念 编程练习
#include <string.h>#include <iostream>using namespace std;class stu{private: //定义数据成员 int num; static int num1;//1.定义静态变量 char name[10]; char sex;public: //声明,成员函数,初始化构造函数。。。原创 2017-12-12 19:09:29 · 167 阅读 · 0 评论