Ton*_*y R 31 c math visual-studio
我正在使用相当新的Visual C++ 2008 Express安装.
我正在尝试编译一个使用log2函数的程序,该程序是通过在Mac上使用Eclipse而找到的,但是这台Windows计算机找不到该函数(错误C3861:'log2':未找到标识符).
我理解它的方式,包括目录是IDE特有的,对吧?我的Microsoft SDKs\Windows\v6.0A\Include \目录中没有math.h,但我确实在这个目录中找到了math.h:Microsoft Visual Studio 9.0\VC\include.该目录中还有一个cmath ......
log2在哪里?
lot*_*har 59
从这里:
原型:双log2(双倍数);
头文件:math.h(C)或cmath(C++)
或者像这里一样模仿它
#include <math.h>
...
// Calculates log2 of number.
double Log2( double n )
{
// log(n)/log(2) is log2.
return log( n ) / log( 2 );
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,微软不提供它.
Ada*_*eld 10
log2()仅在C99标准中定义,而不是C90标准.Microsoft Visual C++并不完全符合C99(哎呀,现在没有一个完全符合C99标准的编译器,我相信 - 甚至GCC都不支持它),因此不需要提供log2().
bob*_*obo 10
如果你试图找到log2严格的整数,一些按位不会伤害:
#include <stdio.h>
unsigned int log2( unsigned int x )
{
unsigned int ans = 0 ;
while( x>>=1 ) ans++;
return ans ;
}
int main()
{
// log(7) = 2 here, log(8)=3.
//for( int i = 0 ; i < 32 ; i++ )
// printf( "log_2( %d ) = %d\n", i, log2( i ) ) ;
for( unsigned int i = 1 ; i <= (1<<30) ; i <<= 1 )
printf( "log_2( %d ) = %d\n", i, log2( i ) ) ;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
72395 次 |
| 最近记录: |