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

请问:能给小弟我解释这段程序吗?多谢

2012-02-05 
请教:各位大哥能给我解释这段程序吗?谢谢!请教:#ifdef__BORLANDC__#definefloorf(float)floor#definesqrtf

请教:各位大哥能给我解释这段程序吗?谢谢!
请教:
#ifdef   __BORLANDC__
  #define   floorf   (float)floor
  #define   sqrtf   (float)sqrt
#endif

time=GetTime();
bool   RenderFunc()
{
int   hrs,   mins,   secs;         //hrs   速度     mins   毫秒   secs   秒
float   tmp;                             //不知道是什么

//   Calculate   display   time

hrs=(int)floorf(time);                                 //得到时间值为   浮点数
tmp=(time-hrs)*60.0f;                                   //这里不知道是什么  
mins=(int)floorf(tmp);                                 //这里不知道是什么
secs=(int)floorf((tmp-mins)*60.0f);       //这里不知道是什么
}


请教:
问题1:
floor   这个函数的功能是什么啊?

举个例子,好吗?

问题2:
hrs=(int)floorf(time);  

这样做有什么用啊?
hrs   和     time   的值相等吗?

问题3:
tmp=(time-hrs)*60.0f;  
这里是什么意思?
time   的值一定大于   hrs   吗?

问题4:
mins=(int)floorf(tmp);                                 //这里不知道是什么
这句话是什么意思?

问题5:
secs=(int)floorf((tmp-mins)*60.0f);       //这里不知道是什么
这句话是什么意思?


谢谢!


[解决办法]
1 哪有floor函数?

2 hrs=(int)floorf(time);相当于
hrs=(int)(float)floor(time);
值肯定不等, 作为参数
[解决办法]
1. floor 就是向下取整. 比如:

floor(3.145) 的 return value 是 3
注意floor(-3.145) 的 return value 是 -4

2. 以下代码表达这个意思:
// test.cpp
// vc-7_1
// windows xp
// cl -EHsc test.cpp
#include <cmath> // for std::floor
#include <cstdlib> // for EXIT_SUCCESS
#include <iostream> // for std::cout std::endl

int main() {
std::cout < < std::floor(3.1415) < < std::endl;
std::cout < < std::floor(-3.1415) < < std::endl;
return EXIT_SUCCESS;
}

3. 其他你自己分析分析就好了啊.
[解决办法]
#define floorf (float)floor
#define sqrtf (float)sqrt
你的头说明了
[解决办法]
1、floor函数返回不大于num的最大整数(表示为浮点数)。例如,给定为1.02时,floor( )返回1.0;若给定-1.02,则floor( )返回-2.0。
2、将由floorf( )得到的结果取整,然后赋值给hrs。hrs的值和time的值不相等。floorf( )的功能和floor( )的功能一样。但是floorf是C99标准新增的。
[解决办法]
#ifdef __BORLANDC__
#define floorf (float)floor
#define sqrtf (float)sqrt
#endif

time=GetTime();
bool RenderFunc()
{
int hrs, mins, secs; //hrs 速度 mins 毫秒 secs 秒
float tmp; //不知道是什么 //------ 中间变量,记录分钟数或分度数

// Calculate display time

hrs=(int)floorf(time); //得到时间值为 浮点数 //---BC取得到小时数或角度数
tmp=(time-hrs)*60.0f; //这里不知道是什么 //---取分钟部分或分度部分
mins=(int)floorf(tmp); //这里不知道是什么 //---分钟数或分度数
secs=(int)floorf((tmp-mins)*60.0f); //这里不知道是什么 //-- 计算剩余秒数或秒度数
}
floor函数不明,可能是取某阶段时间也可能是指某种角度计算,缺乏必要的头文件很难界定。

热点排行