读书人

“char *()”与“int ()”的间接寻址级

发布时间: 2012-10-18 13:46:55 作者: rapoo

“char *()”与“int ()”的间接寻址级别不同,明白的告诉我一下下吧,到底咋事儿,谢谢了
char*cellsub_cpuname( cpu )
longcpu;
{
structhostent*host;

staticcharname[ 20 ];
unsignedcharmm,nn,xx,yy;

if(( host = ( struct hostent * )gethostbyaddr( &cpu, sizeof( cpu ),
AF_INET )) != 0 ){
strcpy( name, host->h_name );
returnname;
}
mm = ( cpu >> (( sizeof( long ) - 1 ) * 8 )) & 0xff;
nn = ( cpu >> (( sizeof( long ) - 2 ) * 8 )) & 0xff;
xx = ( cpu >> (( sizeof( long ) - 3 ) * 8 )) & 0xff;
yy = ( cpu >> (( sizeof( long ) - 4 ) * 8 )) & 0xff;
sprintf( name, "%d.%d.%d.%d", mm, nn, xx, yy );
returnname;
}


提示错误:
error C2040: “cellsub_cpuname”: “char *()”与“int ()”的间接寻址级别不同

[解决办法]
char指针和long整数不能隐式转换,其实就是参数类型不匹配

另外,你这种K&R风格的古董C是从哪里学的,换本书来看
[解决办法]
间接寻址级别不同

原文是什么?
[解决办法]
这段代码虽然古老,但是没什么问题的,不知为何你会编译不过。

读书人网 >C语言

热点推荐