| 
 
| 现在遇到这个问题,请各位帮忙看一下,以下的程序是通过移植过来的,在其他编译器没有问题,但是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);
 
 }
 
 上面的问题已经解决了,是我函数中的类型与传递的类型不一致导致。
 | 
 |