我试图将C项目转换为C语言.
在C项目中,我在编译成c时反击了这个错误:
Error[Pe513]: a value of type “void *” cannot be assigned to an entity of type “uint8_t *”
#define RAM32Boundary 0x20007D00 uint8_t *pNextRam; pNextRam = (void*)RAM32Boundary;// load up the base ram
任何人都可以解释这在C中做了什么以及如何将其转换为C?
解决方法
C允许隐式转换为void *,而C不允许.你需要转换为正确的类型.
使用:
uint8_t *pNextRam; pNextRam = (uint8_t*)RAM32Boundary;// load up the base ram
或者更好*,使用C风格的演员代替C风格:
uint8_t *pNextRam; pNextRam = static_cast<uint8_t*>(RAM32Boundary);// load up the base ram
*在实践中,铸造是一个容易出错的来源. C样式强制转换允许代码的读者轻松查看强制转换,并允许编译器强制执行强制转换.