读书人

把一句C代码翻译成C++代码解决方法

发布时间: 2013-01-04 10:04:18 作者: rapoo

把一句C代码翻译成C++代码


话都说在这份上。你们懂的
[解决办法]
把一句C代码翻译成C++代码解决方法
翻译之后的
不是很明白
[解决办法]
lz是来散分的。
[解决办法]
对不起,C++不愿意那么做呀。
[解决办法]
没办法printf的实现就是不管你的第一个数的类型是什么都是用4个字节.这个是蛋疼的
[解决办法]
引用:
引用:

std::cout<<i;

难道不是这个?

i 的类型不确定。也就是说 char short之类的小于int大小的要符号扩展
float要扩展成double,然后截取低4字节。
double直接截取低4字节。

16位系统,short,和int通常都是16位,不用扩展

i还可以是个结构体的对象,修改成cout后,连编译都过不了。
[解决办法]
std::cout<<static_cast<int>(i)<<std::endl;
[解决办法]
什么时候公布结果呢,哥!
[解决办法]
the same...
printf("%d",i):
[解决办法]
引用:
C/C++ code

printf("%d", i);


就这句代码,各位来翻译翻译。哥将以最严格的标准来检查答案
话都说在这份上。你们懂的
翻译完啦
[解决办法]
先来一个内嵌汇编版的
__declspec(naked) int func( ... )
{
__asm mov eax , [esp+4]
__asm ret
}

cout<< func( i );
结果肯定一致。
[解决办法]
这个不错。。
引用:
先来一个内嵌汇编版的
C/C++ code
__declspec(naked) int func( ... )
{
__asm mov eax , [esp+4]
__asm ret


}


cout<< func( i );
结果肯定一致。


[解决办法]
好了,纯粹C++版本来了。



int func(float a)
{
double x = a;
return *(int*)&x ;
}

template<class T>
int func( T a )
{
return *(int*)&a;
}

#define CALL( a ) cout<< func( a ); printf("\t%d\n" , a );

struct T1
{
double a;
int b;
};

struct T2
{
int a;
double b;
};


struct T3
{
char a;
short b;
};

struct T4
{
short a;
char b;
};
int main()
{
char a = 0x7f;
unsigned char b = 0x7f;
short c = 0x7fff;
unsigned short d = 0x7fff;
int e = 0x7fffffff;
unsigned int f = 0x7fffffff;
__int64 g = 0x7fffffffffffffff;
unsigned __int64 h = 0x7fffffffffffffff;
float i = 123.4567;
double j = 123.4567;
T1 k = {123.456,0x7fffffff};
T2 l = {0x7fffffff,123.456};
T3 m = {0x7f,0x7fff};
T4 n = {0x7fff ,0x7f};

CALL( a );
CALL( b );
CALL( c );
CALL( d );
CALL( e );
CALL( f );
CALL( j );
CALL( h );
CALL( i );
CALL( j );
CALL( k );
CALL( l );
CALL( m );
CALL( n );
}

[解决办法]
std::cout<<static_cast<int>(i);
[解决办法]
难道用模板?还是我领会错了楼主的意思,楼主实际是来散分的
[解决办法]
不懂 学习了
[解决办法]
1.楼主散粉
2.揭晓答案
3.我学习了
[解决办法]
引用:
翻译之后的
C/C++ code
printf( "%d" , i );


++

的确很弓虽大!:)

看了前面的帖子,发现自己这方面的理解看来很肤浅...坐等楼主教诲!收藏之。
[解决办法]
printf("%d", i);
我的答案
[解决办法]
std::cout<<static_cast<int>(i);
[解决办法]
CSDN就是好,很多书上学不到的东西,在这里可以学到。

感恩一下...
[解决办法]
学习的,不过还真复杂,你们搞科学研究吗
[解决办法]
不错 学习了~
[解决办法]
坐等楼主给分!~~~~~~~~~~~~~

读书人网 >C++

热点推荐