首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

c程序有关问题,高手指教,

2012-02-08 
c程序问题,高手指教,在线等,急!!在线等!!#includestdio.h //voidTruncToint32(int&e,floatfval)intmain(

c程序问题,高手指教,在线等,急!!在线等!!
#include   "stdio.h "

//void   TruncToint32(int&   e,float   fval)

int   main()
{
int   e;
float   f   =   0;
TruncToint32(e,f);
printf( "0   is   %d\n ",e);
}

void   TruncToInt32   (int&   ival,   float   fval)
{
ival   =   *(int   *)&fval;

int   mantissa   =   (ival   &   0x07fffff)   |   0x800000;

int   exponent   =   150   -   ((ival   > >   23)   &   0xff);

if   (exponent   <   0)
ival   =   (mantissa   < <   -exponent);
else
ival   =   (mantissa   > >   exponent);


if   ((*(int   *)&fval)   &   0x80000000)
ival   =   -ival;
}
这段程序无论是tc2.0还是tc3.0都编译不过去。
提示function   TruncToint32   should   have   a   prototype

可是我的tc2.0和tc3.0都有stdio.h而且路径设置也没问题。

请高手帮忙看看程序哪里有问题,指教了。谢谢!

[解决办法]
首先你声明的地方后面没有;
其次你生命的函数名和定义的函数名不同 I 与 i
[解决办法]
tc这东西很久没用了 你给e一个初值试试看
[解决办法]
将声明中的int& e改为int& ival试试看

这在新的编译器上似乎都不是问题了,如果不想研究纯C的标准语法,建议换高级的编译器

- - 当然 在学校老师要求的话另当别论
[解决办法]
把主函数方后面就好了说明你的函数声明和定义有区别,会不会是你那个函数定义函数名后有空格的原因?
[解决办法]
void TruncToint32(int& e,float fval)
======================================
int &e 肯定有问题。你这里声明的是引用吧,在c里面是没有引用的,引用是c++的东西,所以c编译器肯定不会认识的。如果需要还是声明为指针吧,int *p,你再调试看看。
还有你声明语句的结尾丢了分号,而且既然把主函数定义为整型就需要给它一个返回值,不要丢了。

热点排行