amobbs.com 阿莫电子技术论坛

标题: FlashDB移植到C++环境时会产生void*类型报错 [打印本页]

作者: xiaoergao    时间: 2020-11-6 01:08
标题: FlashDB移植到C++环境时会产生void*类型报错
尝试将FlashDB移植到STM32F1的硬件,由于采用C++语言在移植的过程中遇到一些问题:
1、inttypes.h中定义的PRIX32等宏定义好像会报错。解决方法:直接替换成对应的定义内容
2、部分函数如print_kv_cb、query_count_cb等传参有void*类型,函数里面将这个参数赋值给其他变量,在C环境中是没有问题的。C语言中任何类型的指针都可以(隐式地)转换为void*型,反过来也行。而C++中void*型不能隐式地转换为别的类型指针(例如:int*p = (void*)0;使用C++编译器编译会报错)。解决方法:在赋值前增加类型强制转换。
作者: warrenyan7251    时间: 2021-4-1 08:59
学习中,谢谢分享,谢谢谢




欢迎光临 amobbs.com 阿莫电子技术论坛 (https://www.amobbs.com/) Powered by Discuz! X3.4