错误:初始化类型时类型不兼容

土生土长的
error: incompatible types when initializing type 'REQ_ONE * {aka struct REQ_ONE *}' using type 'REQ_ONE {aka volatile struct REQ_ONE}'
 #define FIND_T(a, type)  (*((volatile type *)a))

我想获取REQ_ONE. 最初我只是使用:

REQ_ONE *reqReg = FIND(ADDRESS)

但我的代码分析器抱怨pointer to void not allowed所以我想转换结构的类型来解决这个问题。我有很多不同的结构,所以我只想使用一个宏:

REQ_ONE *reqReg = FIND_W(ADDRESS, REQ_ONE);

并传递我想要尊重的类型参数。但是,在我什至看到我的分析工具是否满意之前,我收到了上述编译错误。

#define TEST_ADDR   0x00652000UL
#define ADDRESS     0x00000500UL

#define FIND(v) ((void *)TEST_ADDR + v)      
#define FIND_T(a, type)  (*((volatile type *)a))
#define FIND_W(val, dataType) FIND_T(FIND(val), dataType) 

typedef struct testing_t {
  union {
    struct {
      uint32_t avr_one :  4;
      uint32_t avr_one :  4;
      uint32_t avr_one :  4;
      uint32_t avr_one :  2;
      uint32_t bcr_one :  4;  
      uint32_t test_one : 4;  
      uint32_t reserved :  1; 
      uint32_t bcr_three : 2; 
      uint32_t reserved1 :  1;
      uint32_t test_one :  3;
      uint32_t avg  : 2;
      uint32_t reserved2 : 1;
    };
    uint32_t VALUE32;
  };
} REQ_ONE;
保罗·奥格维

扩大这个产量:

REQ_ONE *reqReg = (*((volatile REQ_ONE *)((void *)0x00652000UL + 0x00000500UL)))

并且有一个*太多,所以您取消引用您指向的内容并希望将其分配给指针类型变量。错误在:

#define FIND_T(a, type)  (*((volatile type *)a))    // wrong
#define FIND_T(a, type)  ( ((volatile type *)a))    // no dereference

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Robolectric在尝试初始化Activity Android时给出类型不匹配错误

不兼容类型初始化Java中通用类型的堆栈

SKNode子类生成错误:无参数时无法调用类型“ X”的初始化程序

该类型出现在单个LINQ to Entities查询中的两个结构不兼容的初始化中

分配给指针时从不兼容的指针类型警告进行初始化

泛型:使用“ NSMutableArray <__ kindof超类*> *”类型的表达式初始化“ NSMutableArray <subclass *> *”的不兼容指针类型

Java不兼容类型错误

当函数将数组作为参数时,C“警告:从不兼容的指针类型初始化”

初始化custormer类型的对象的向量时,复制构造函数错误

返回类型时不兼容的类型

尝试格式化日期时间时出现“操作中的数据类型不兼容”错误

C中的指针函数:来自不兼容指针类型的foo初始化

如何解决:从不兼容的指针类型初始化

错误:使用类型'taus88_t'|初始化类型'struct taus88_t *'时类型不兼容?

NSComparator错误:不兼容的块指针类型初始化

初始化'Method *'C的不兼容指针类型

定义结构的向量并将其作为C中的指针传递-错误:来自不兼容指针类型的初始化

不兼容的指针类型使用'UITextField *'类型的表达式初始化'NSString *'

typedef函数指针->从不兼容的指针类型初始化

初始化指向结构的指针时类型不兼容

C:不兼容的指针类型初始化

AlertDialog不兼容的类型错误

使用选择器初始化的覆盖方法在Swift中具有不兼容的类型

Swift数组初始化器语法类型不匹配

初始化数组时出错*类型不匹配*

Greenfoot不兼容的类型错误

使用包含闭包的类型初始化器初始化属性时出现编译错误

该类型出现在单个 LINQ to Entities 查询中的两个结构不兼容的初始化中

数组初始化时不兼容的指针类型