摘要:
1.paho mqtt官方仓库地址: https://github.com/eclipse/paho.mqtt.c.git2.打开项目,找到项目根目录下的Makefile,关注如下两个地方: 1.编译器:Makefile的126行 2.库安装路径:Makefile的70行 3.编译 如果在Ubunt 阅读全文
posted @ 2025-04-16 16:59
Vak
阅读(322)
评论(0)
推荐(0)
摘要:
1.步骤:gdb ./your_programrunbt # 查看崩溃时的调用栈输出示例: #0 0x00007ffff7e8f1a7 in std::__throw_logic_error (__s=0x7ffff7f9b8d8 "basic_string::_M_construct null n 阅读全文
posted @ 2025-04-16 15:29
Vak
阅读(12)
评论(0)
推荐(0)
摘要:
1.现有结构体如下 typedef struct { //该结构体字节没有对齐 char terminalNumber[10]; //终端编码 uint8_t commandCode; //命令代码 uint8_t commandLength; //命令长度 uint8_t updateID[5]; 阅读全文
posted @ 2025-04-16 15:14
Vak
阅读(28)
评论(0)
推荐(0)
摘要:
typedef struct{ //终端位置信息 char terminalCode[10]; //终端编码 uint8_t carStatus; //车辆状态 }TerminalLocationInfo_t; TerminalLocationInfo_t *locationInfo; locati 阅读全文
posted @ 2025-04-16 15:11
Vak
阅读(27)
评论(0)
推荐(0)
摘要:
1.#pragma 是一种预处理指令,用于向编译器提供特定的指示或控制编译过程。结构体定义前出现#pragma时,通常用于控制结构体的内存对齐方式。2.主要作用: 内存对齐控制:最常见的用途是控制结构体的内存对齐方式。3.使用方法1 #pragma pack(1) //保存当前对齐状态,并设置对齐为 阅读全文
posted @ 2025-04-16 15:04
Vak
阅读(79)
评论(0)
推荐(0)
摘要:
1.野指针形成的原因 1.指针没有被初始化。 2.指针被delete或者free后没有置空; 3.指针操作超越了变量的范围。2.如何避免野指针 1.c++有引用,如果使用引用可以达到目的,就不必使用指针。 2.如果一定要使用指针,必须初始化。 3.free或delete之后将其指向NULL,通常定义 阅读全文
posted @ 2025-04-16 14:20
Vak
阅读(42)
评论(0)
推荐(0)
摘要:
指针定义时为什么一定要初始化? 1.指针不是分配了才能使用,而是分配了之后使用才安全,如果不进行初始化, int *p;之后p指向的地址是随机的,如果此时指向的内容是程序的有效数据,如果修改其数据,可能导致程序不能正常运行,所以要进行初始化。2.初始化之后的效果? 初始化即将指针指向的地址设置为0或 阅读全文
posted @ 2025-04-16 14:14
Vak
阅读(76)
评论(0)
推荐(0)
摘要:
1.printf("%p\n", x);%p什么意思? %p表示后面的参数期望是指针类型(void *),用于16进制打印指针指向的地址; 也可以用于打印16进制数,这会发生强制转换,会报Warning;2.%p打印指针,输出nil什么意思? nil 可以表示一个指针不指向任何有效的内存地址。 这通 阅读全文
posted @ 2025-04-16 14:13
Vak
阅读(111)
评论(0)
推荐(0)
摘要:
NULL本质就是宏,其值为0; 阅读全文
posted @ 2025-04-16 14:11
Vak
阅读(4)
评论(0)
推荐(0)
摘要:
double *p = 5; //error 因为double *p只是定义一个指针变量,但是p指向的地方是不可预知的,此时想p所指向的内存空间直接写数据,结果不可预知,可能报段错误(崩溃)。 而malloc的作用是向操作系统申请一块可用的内存空间,再令p指向这片内存空间,就可以向其中写入数据了; 阅读全文
posted @ 2025-04-16 14:10
Vak
阅读(13)
评论(0)
推荐(0)
摘要:
关于前向声明: 可以声明1个类而不定义它。1.什么时候回用到前向声明? 1.友元函数: 类中有友元函数且需要访问类的私有成员变量,(类如果不前向声明的话,其友元函数无法访问私有成员。) 2.两个类之间相互引用包含问题, 阅读全文
posted @ 2025-04-16 13:57
Vak
阅读(18)
评论(0)
推荐(0)
摘要:
1.位域结构体允许指定结构体成员占用的位数,而不是完整的字节或字。这种技术主要用于节省内存空间,特别是在处理硬件寄存器或需要精确控制数据位布局的场景中。struct status_flags { unsigned int error_flag : 1; // 1位 unsigned int read 阅读全文
posted @ 2025-04-16 11:53
Vak
阅读(107)
评论(0)
推荐(0)
浙公网安备 33010602011771号