用VS2008建立一个纯C solution(PureC_扫描仪代码模块测试(qzm).rar)调试好条码扫描仪的搜索代码,加入Cvavr项目中(一个Atmega128项目,其中要接一个条码扫描仪采集条码)然后在Cvavr中编译,出现 "Invalid indirection 错误提示!如下所示:
1楼
0
0
回复
这是C语言中比较经典的错误提示:大意是:无效的间接运算(在这里指“**”指针的指针)。左边的指针间接运算操作符(*)要求非void 指针作为操作分量。
改回正确的指针的指针的写法即通通编译:(如下图所示红色圈中的改动)
NOTE:由于VS2008能智能地识别"**"中第二个“*”的类型,因此编译运行完全OK,但CVAVR是8位的单片机IDE,他要程序员显式地声明指针的指针中第2个指针(红色那个*)的指针类型 *((char*)*xxx), Cvavr在Link时才能正确地分配空间。