自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 【】C语言】【预处理命令】#、##、##__VA_ARGS_、##args_

将宏参数转换为字符串,即将参数名转换为字符串字面值。运算符将可变参数列表与前面的标记连接起来,从而避免这种情况.:用于连接两个符号,将它们组合成一个符号。则用于在宏定义中处理可变参数列表的边界情况。用于将可变参数列表作为一个整体传递给宏。当可变参数列表为空时,如果直接使用。gcc 宏##args用法。

2023-08-28 16:00:21 279

原创 【协议类】【SCTP】demo

前期准备linux sctp驱动 modinfo sctp 查看信息 modprobe sctp 加载sctp驱动,默认没有加载 apt-get install libsctp* apt-get install lksctp* man sctp 查看手册代码: 编译时需要加上 -lsctp, 例如gcc server.c -o server -lsctp客户端:#include <stdio....

2021-08-05 01:17:43 356

原创 【快速排序】

快速排序哔哩哔哩https://www.bilibili.com/video/BV1Tt411r75A?from=search&seid=8963086176545103840快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用,再加上快速排序思想----分治法也确实实用,因此很多软件公司的笔试面试,包括像腾讯,微软等知名IT公司都喜欢考这个,还有大大小的程序方面的考试如软考,考研中也常常出现快速排序的身影。快速排序是C.R.A.Hoare于1962...

2021-01-13 10:34:57 125

原创 【结构体】【初始化】【{0}、{}】进阶

为结构体每个成员初始化成0Reference C99 Standard 6.7.8.21:If there are fewer initializers in a brace-enclosed list than there are elements or members of an aggregate,or fewer characters in a string literal used to initialize an array of known size than there are

2020-12-09 16:30:41 7443 1

原创 【宏】【宏与const区别】

​解读:(1)编译器处理方式不同  define宏是在预处理阶段展开。  const常量是编译运行阶段使用。(2)类型和安全检查不同  define宏没有类型,不做任何类型检查,仅仅是展开。  const常量有具体的类型,在编译阶段会执行类型检查。(3)存储方式不同  define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存。(宏定义不分配内存,变量定义分配内存。)  const常量会在内存中分配(可以是堆中也可以是栈中)。...

2020-12-08 20:56:06 310

原创 【类型】【最大值最小值】【计算】

unsigned类型最大值:(your type)~0int类型最大值:(unsigned int)~0 为unsigned int类型最大值(二进制位全为1),右移1位即为int类型最大值int类型最小值:等于int类型最大值 + 1static const int MAX_INT = (int) ((unsigned int)~0 >> 1);static const int MIN_INT = (int) ((unsigned int)~0 >> 1) +...

2020-12-08 16:47:35 659

原创 【宏】【DEBUG宏】

https://www.cnblogs.com/PengfeiSong/p/6274834.htmldebug宏的实现原理(1)DEBUG宏大概的原理是:#ifdef DEBUG#define dbg() printf()#else#define dbg()#endif(2)工作方式是:如果我们要输出DEBUG版本则在条件编译语句前加上#define DEBUG即可,这样程序中的调试语句dbg()就会被替换成printf从而输出;如果我们要输出RELEASE版本则去掉#defin

2020-12-08 11:03:33 1185

原创 C++ const修饰

在c++中用const修饰常量来替换#define定义的宏 1.C++中应避免使用#define,因#define没有作用域的概念,因此会破坏C++的封装性; 2.另一方面,预处理器会在编译前将替换#define定义的常量,程序中没有了定义的标识符,会影响debug或crash问题的查找; 3.另外被常量值替换了的常量出现在多处,就可能在多个位置存储,增加程序...

2020-03-11 15:24:32 189

原创 触摸调试命令

1.查看tp驱动是否加载成功tp驱动实际上是i2c设备驱动,通过查看i2c设备节点可以查看到驱动的相关信息。adb shellls -al /sys/bus/i2c/drivers2、查看当前的input设备在驱动程序中我们都要注册一个input设备,可以通过以下指令查看所有的input设备,并看是否注册成功:adb shell getevent -i3.输入Comman...

2019-09-29 11:42:22 436

转载 触摸屏原理介绍

目录一、输入类设备简介二、触摸屏介绍三、电阻式触摸屏的原理四、电容式触摸屏的原理一、输入类设备简介1、IO输入输出,是计算机系统中的一个概念。计算机的主要功能就是从外部获取数据然后进行计算加工得到输出数据并输出给外部(计算机可以看成数据处理器)。计算机和外部交互就是通过IO。每一台计算机都有个标准输入和标准输出。2、常见的输入类设备键盘、鼠标、触摸屏、游戏摇杆、...

2019-09-29 11:39:41 1701

转载 宏#,##,##__VA_ARGS__

之前相应了解#define和inline的区别,以及各自的优缺点(下篇文章再好好总结一下吧)。但被effective C++的作者的一句话,尽量少用宏(万恶之源)所惑,多少有些忽视了#define的特性。下面所转载的东西,第7条看的多少有些迷糊外,其他6点还总结的非常好。参考如下:众多C++书籍都忠告我们C语言宏是万恶之首,但事情总不如我们想象的那么坏,就如同goto一样。宏有一个很大的...

2019-09-24 14:58:51 484

转载 (void) (&_x == &_y) 作用

#define max(x,y) ({ \typeof(x) _x = (x);\typeof(y) _y = (y);\(void) (&_x == &_y);\_x > _y ? _x : _y; })typeof(x)的意思是取x的类型,这不是标准C里的,gcc支持,vc不支持(void) (&_x == &_...

2019-09-24 14:49:49 754

原创 MQTT操作实践指南

目录Mosquitto 服务器设备端开发客户端1.paho-mqtt2.Mosquitto实测:1.打开broker,设备mosquito client连入broker2. mqtt.fx client 连入broker体会:设备端mosquito client代码demo百度搜素eclipse pahohttp://www.eclipse....

2019-08-15 16:54:08 1832

转载 MQTT介绍

https://www.runoob.com/w3cnote/mqtt-intro.html官网:http://mqtt.org/mqtt-v5.0 :https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.htmlmqtt-v3.1.1 :http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/mq...

2019-08-13 19:27:34 614

原创 md5 加密(使用openssl库C)

参考https://blog.csdn.net/zsy19881226/article/details/46879887依赖openssl里面的-lcrypto libcrypto.so库#include<openssl/md5.h>unsigned char *MD5(const unsigned char *d, unsigned long n, unsigne...

2019-08-13 14:32:32 1252

转载 GCC __attribute__((visibility("XX")))

源于:https://blog.csdn.net/veryitman/article/details/46756683OBJC_VISIBLE 的定义方式是 __attribute__((visibility("default"))).那么究竟有什么作用呢? 下面举例说明. GCC 有个visibility属性, 该属性是说, 启用这个属性:1. 当-fvisibility=h...

2018-07-26 18:02:43 520

转载 I2C

1.I2C协议   2条双向串行线,一条数据线SDA,一条时钟线SCL。   SDA传输数据是大端传输,每次传输8bit,即一字节。   支持多主控(multimastering),任何时间点只能有一个主控。   总线上每个设备都有自己的一个addr,共7个bit,广播地址全0.   系统中可能有多个同种芯片,为此addr分为固定部分和可编程部份,细节视芯片而定,看datash

2017-09-19 17:19:19 398

转载 SPI协议

SPI通信协议(SPI总线)学习1、什么是SPI?SPI是串行外设接口(Serial Peripheral Interface)的缩写。是 Motorola 公司推出的一 种同步串行接口技术,是一种高速的,全双工,同步的通信总线。2、SPI优点支持全双工通信通信简单数据传输速率块3、缺点没有指定的流控制,没有应答机制确认是否接收到数据,所以跟IIC总

2017-09-19 17:08:20 531

转载 状态机按键扫描

随笔 - 93文章 - 0评论 - 1基于状态机的按键扫描的实现一般的按键输入软件接口程序非常简单,在程序中一旦检测到按键输入口为低电平(有时可能为高),便采用软件延时的方 法来进行消抖,然后再次检测按键输入,如果再次确认为低电平则表示有按键按下,转入执行按键处理程序。如果延时后检测的电平为高电平则放弃本次按键检测, 重新开始一次按键检测过程。在简单的系统中这种方法比较可以用,但是...

2017-09-19 16:54:46 1447 1

转载 linux串口编程2

.串口概述 常见数据通信方式:并行通信,串行通信 UART的主要操作:   >数据发送及接受   >产生中断   >产生波特率   >Loopback模式    >红外模式   >自动流控模式   串口参数的配置主要包括:波特率、数据位、停止位、流控协议。 linux中的串口设备文件放于/de/目录下,串口一,串口二分别为"/dev/ttyS0","/dev

2017-03-07 21:04:16 222

转载 linux串口操作及设置

串口操作需要的头文件#include /*标准输入输出定义*/#include /*标准函数库定义*/#include /*Unix 标准函数定义*/#include#include#include /*文件控制定义*/#include /*PPSIX 终端控制定义*/#include /*错误号定义*/1.打开串口在前面已经提到linux下的串口访问是

2017-03-04 13:23:23 592

转载 u-boot

/////////////////////////////////////////////////////////////////////////////一、S5PV210的启动方式iROM:BL0,BootLoader 0,初始化系统时钟,初始化对应的设备和启动设备(Nand,SD卡),三星固化在芯片的代码,我们是不能修改。BL1:BootLoader 1,uboot前面

2017-01-12 14:41:18 367

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除