函数指针给我"重新声明为不同类型的符号"错误
function pointer gives me “redeclared as different kind of symbol” error
我想将函数指针解散为:
char*(*palpr_recognize_rawimage)(OPENALPR*, unsigned char*, int, int, int, struct AlprCRegionOfInterest);
这是针对声明为的函数原型:
char *openalpr_recognize_rawimage(OPENALPR *instance, unsigned char *pixelData, int bytesPerPixel, int imgWidth, int imgHeight, struct AlprCRegionOfInterest roi)
但是我在编译时收到此错误:
‘char* (* palpr_recognize_rawimage)(OPENALPR*, unsigned char*, int, int, int, AlprCRegionOfInterest)’ redeclared as different kind of symbol
char*(*palpr_recognize_rawimage)(OPENALPR*, unsigned char*, int, int, int, struct AlprCRegionOfInterest);
^
避免重新键入复杂定义并可能出错的一种方法是使用 decltype。
因此,在函数原型之后,您可以拥有:
using PFN = decltype(&openalpr_recognize_rawimage);
PFN myfunctionptr;
我发现了问题! 这是typedef palpr_recognize_rawimage_type
行中的一个简单的错别字: 我忘了在类型声明中添加后缀_type
,因此类型和实际指针具有相同的名称 - 这显然会引起麻烦...... 如果我查看编译器的第一个错误,我会发现以下内容:note: previous declaration
很明显,我在类型命名中加入了一些东西。
--> 不仅要看第一个/顶部错误,还要至少看第二个错误是值得的 - 正如您永远不知道的那样,它也可能提供提示!
相关文章:
- ArduinoJson 6.15.2:JsonObject没有命名类型
- 防止主数据类型C++的隐式转换
- 大量序列中核苷酸类型的快速计数
- 如何从C++中的依赖类型中获得它所依赖的类型
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 是否可以初始化不可复制类型的成员变量(或基类)
- 如何获取std::result_of函数的返回类型
- 从父命名空间重载类型
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- Openssl 1.1.1d无效使用不完整的类型"struct dsa_st"
- 访问者访问变体并返回不同类型时出错
- 我收到同义重复编译器错误。我应该如何修复"类型"X"的参数与类型"X"的参数不兼容?
- 为什么我不能在同一行中定义两个相同类型的类的成员指针
- CRTP 模式 但是在数据结构中存储非同构类型
- 私有结构(在类中定义)不能用作属于同一类的函数的返回类型吗
- C++ 管理多个同质数据类型
- 在同一行读取具有多个类型的文件
- C++对同一类类型的引用公开私有成员
- 在同一类中向前声明类型