C/C++
天使也有爱
Stay hungry,Stay foolish
展开
-
实用数据处理
#include <stdio.h>typedef unsigned char BOOL_T; typedef unsigned char U8_T; typedef signed char S8_T; typedef unsigned short U16_T; typedef signed short S16_T; typedef unsigned int U32_T; typedef signe原创 2021-09-07 21:21:22 · 113 阅读 · 0 评论 -
扫描指定文件夹下的所有文件
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <dirent.h>#include <string.h>#include <sys/stat.h> char buff[512]; void print_dir(char *path, int depth){ struct dirent **name_list; int原创 2021-06-24 18:15:08 · 1222 阅读 · 0 评论 -
结构体变量位域使用技巧
#include <stdio.h>/* 位域定义 */typedef struct{ unsigned char value1 : 1;/* 1bit */ unsigned char value2 : 1;/* 1bit */ unsigned char value3 : 1;/* 1bit */ unsigned char value4 : 1;/* 1bit */ unsigned char value5 : 1;/* 1bit */ unsigned char val原创 2021-04-12 10:14:53 · 261 阅读 · 0 评论 -
浮点数十六进制互转
#include <stdio.h>/* strore union */union packet{ float a; char b[4];}; /* hex to float */float hex_to_float(char arry[]){ unsigned int i = 0; union packet p; float ret; for (i = 0; i < 4; i++) p.b[i] = arry[i]; ret = p.a; re原创 2020-12-28 15:45:44 · 220 阅读 · 0 评论 -
sscanf提取字符串数字
#include <stdio.h>int main(){ char *str = "1234"; int tmp1,tmp2; sscanf(str,"%2d %2d",&tmp1,&tmp2); printf("tmp1 = %d tmp2 = %d\n",tmp1,tmp2); return 0;}结果:原创 2020-10-15 15:47:10 · 2683 阅读 · 0 评论 -
程序调试总结
基本上写程序大部分时间都是在调试上面,写代码也只是占用一部分时间。还有一些隐蔽的问题,一般肉眼也说很难看出来,所有调试代码是考验一个程序员的基本功。大多数集成开发软件的调试都是大同小异,所以这边只是总结VC6.0这个老古董的调试为例就可以了。...原创 2020-06-09 14:45:03 · 805 阅读 · 0 评论 -
软件设计模块之间7种耦合关系
以下是模块7种耦合度,写程序提倡模块间耦合低越低越好。一般来说,模块之间的耦合有七种类型:根据耦合性从低到高为非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合和内容耦合。两个模块之间没有直接关系, 它们之间的联系完全是通过主模块的控制和调用实现的,这种耦合为非 直接耦合;如果一个模块访问另一个模块时,彼此之间是通过数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合为数据耦合;如果一组模块通过数据结构本身传递,则称这种耦合为标记耦合;如果一个模块调用另转载 2020-06-05 16:11:06 · 25010 阅读 · 1 评论 -
继承的用武之地
实现继承的用武之地有3处:1、希望访问基础类的protected成员2、希望覆盖基础类的方法,并且难以用合成来变通3、希望成为基础类的子类型原创 2020-06-04 14:39:03 · 135 阅读 · 0 评论 -
C++析构函数何时需要自定义?
析构函数:如果我们自己不写,编译器会帮我们写(编译器自己写的析构里面什么都不干)。什么时候必须要我们自己写?如果本类中一个成员变量是别的对象的指针,而且这个指针不是传进来的地址而是这个指针指向的对象,是在本类中(如果是栈里的定位分配,也不用考虑内存)在堆中开辟的空间创建的。并且该指针没有进行过delete操作,那么久需要在析构方法中进行delete操作,此时我们就必须自己写析构函数 。相关文章:C++何时需要自定义析构函数呢?...转载 2020-06-02 16:12:27 · 1606 阅读 · 0 评论 -
C++智能指针解决内存泄漏
C#、Java、python和go等语言中都有垃圾自动回收机制,在对象失去引用的时候自动回收,而且基本上没有指针的概念,而C++语言不一样,C++充分信任程序员,让程序员自己去分配和管理堆内存,如果管理的不好,就会很容易的发生内存泄漏问题。C++缺点:我们知道c++的内存管理是让很多人头疼的事,当我们写一个new语句时,一般就会立即把delete语句直接也写了。参考文章:c++ 智能指针用法详解...转载 2020-06-01 15:44:08 · 627 阅读 · 0 评论 -
printf里面有趣的问题\r \n
\n 换行符 — 另起一行\r 回车符 — 回到本行开头\r#include <stdio.h>int main(int argc, char *argv[]){ printf("asdflkjqq\r111\n"); return 0;}\r的话回到本行的开头,如果继续输入的话会把先前的覆盖掉输出结果:111flkjqq请按任意键继续. . .#include <stdio.h>int main(int argc, char *argv[]){原创 2020-05-27 10:06:02 · 1406 阅读 · 0 评论 -
关于C语言技巧文章
C语言、嵌入式中几个非常实用的宏技巧原创 2020-05-18 08:36:25 · 175 阅读 · 0 评论 -
C语言回调函数理解和使用
讲解回调函数相关文章: 关于C语言回调函数的理解原创 2020-04-11 14:06:11 · 366 阅读 · 0 评论 -
Cppcheck检测代码
Cppcheck对代码缺陷可以静态检测,对于完善代码质量有很好的作用。可以结合VS2102、QT集成开发环境使用,在开发环境配置就可以;还可以独立下载CppCheck软件CppCheck下载地址:http://cppcheck.sourceforge.net/CppCheck软件如图:Windows下 Cppcheck 的使用教程...原创 2020-03-17 15:21:21 · 659 阅读 · 0 评论 -
typedef函数指针用法
函数定义形式: typedef 返回类型(*新类型)(参数表)typedef char (*PTRFUN)(int);PTRFUN pFun;char glFun(int a){ return;}void main(){pFun = glFun;(*pFun)(2); }typedef的功能是定义新的类型。第一句就是定义了一种PTRFUN的类型,并定义这种类型...原创 2020-02-06 17:47:31 · 131 阅读 · 0 评论 -
段错误segmentation fault发生原因
1、数组访问导致栈被破坏导致非法地址访问2、malloc/free引发故障3、对NULL指针访问4、指针被破坏导致非法地址访问5、栈溢出导致访问超出已分配的地址空间...原创 2019-12-09 15:35:41 · 921 阅读 · 0 评论 -
程序中错误处理
1、同一个线程里面采用错误返回码****和异常捕获****分别比如函数返回值和try…catch…2、异步编程,不同线程里面,被调用函数被放在另一个线程里面运行,无法返回码和无法抛出异常,在异步编程里面最常用的是采用注册回调函数的方法...原创 2019-12-04 10:03:27 · 176 阅读 · 0 评论 -
4625十进制转十六进制
#include <stdio.h>#include <stdlib.h>typedef unsigned char BOOL_T;typedef unsigned char U8_T;typedef signed char S8_T;typedef unsigned short U16_T;typedef ...原创 2019-09-16 18:58:32 · 2599 阅读 · 0 评论 -
C语言16进制字符串转为16进制
#include <stdio.h>#include <stdlib.h>typedef unsigned char BOOL_T; typedef unsigned char U8_T; typedef signed char S8_T; typedef unsigned short U16_T; typed...原创 2019-09-12 11:41:40 · 1521 阅读 · 0 评论 -
c语言将数组转换为十六进制同值的字符串
#include <stdio.h>#include <stdlib.h>typedef unsigned char BOOL_T; typedef unsigned char U8_T; typedef signed char S8_T; typedef unsigned short U16_T; typed...原创 2019-09-12 10:23:09 · 2292 阅读 · 0 评论 -
C语言函数和C++方法的区别
1、方法和对象相关;2、函数和对象无关。3、Java中只有方法,C中只有函数,而C++里取决于是否在类中。方法也是一段代码,也通过名字来进行调用,但它跟一个对象相关联。方法和函数大致上是相同的,但有两个主要的不同之处:1.方法中的数据是隐式传递的;2.方法可以操作类内部的数据(请记住,对象是类的实例化–类定义了一个数据类型,而对象是该数据类型的一个实例...原创 2019-08-01 11:16:14 · 1542 阅读 · 0 评论