现在遇到这个问题,请各位帮忙看一下,以下的程序是通过移植过来的,在其他编译器没有问题,但是ICCAVR编译出错。
新的问题产生: 这样的调用,大家给看看。 错误提示: type error in argument 2 to `SendString'; found `pointer to const char' expected `pointer to char' #define TESTSTRING "test"
void Send(char * pszString) { while(*(pszString)) { SendChar0(*(pszString ++)); } }
void SendString(char * pszString) { Send(pszString); }
main(){ SendString(TESTSTRING); }
以上函数的目的是发送一段字符串,通过把字符串地址传递给函数,然后进行发送,但是现在问题是编译不过去,在Softune V3编译通过。
我做过这样的测试: main(){ char testString[] = TESTSTRING; SendString(&testString[0]); } 这样倒是可以了,但是我觉得这样太麻烦了,我需要定义很多常量,必须定义对应数量的数组才可以发送,很是麻烦,谁有更好的方法可以赐教吗,在此谢过。
============================ 下面问题已经解决,有兴趣的可以看看原因。 出错信息: Type error in argument 7 to `GetInfor'; found `pointer to unsigned int' expected `pointer to unsigned char'
程序中,通过nData传递数值给函数,同时把Data1和Data2的地址传递给函数。
//-------------------------------------------------------------------- unsigned char GetInfor(unsigned int nData, unsigned int * pData1, unsigned char * pData2) { ........................
}
main(){ unsigned char ucReturn; unsigned int nData, nData1, nData2;
ucReturn = GetInfor(10, &nData1, &nData2);
}
上面的问题已经解决了,是我函数中的类型与传递的类型不一致导致。 |