难道你程序真的这么写的?下面的三行也不是写在一个主函数里或者一个子函数里吗?最后一行竟然会OK?在说笑话吧。这样,就能编译通过的。unsigned int mt;unsigned char cc,cd,ct;float s;void cdt(){s=cc/mt;ct=(unsigned char)(cd/s);ct=(unsigned char)((cd*mt)/cc);}main(){ cdt(); while(1);}