把一句C代码翻译成C++代码
- C/C++ code
printf("%d", i);就这句代码,各位来翻译翻译。哥将以最严格的标准来检查答案
话都说在这份上。你们懂的
[解决办法]
翻译之后的
- C/C++ code
printf( "%d" , i );
[解决办法]
cout << (int)i;
……
[解决办法]
我知道LZ散分的。
[解决办法]
std::cout<<i;
难道不是这个?
[解决办法]
jf.........
[解决办法]
[解决办法]
[解决办法]
不是很明白
[解决办法]
lz是来散分的。
[解决办法]
对不起,C++不愿意那么做呀。
[解决办法]
没办法printf的实现就是不管你的第一个数的类型是什么都是用4个字节.这个是蛋疼的
[解决办法]
[解决办法]
std::cout<<static_cast<int>(i)<<std::endl;
[解决办法]
什么时候公布结果呢,哥!
[解决办法]
the same...
printf("%d",i):
[解决办法]
[解决办法]
先来一个内嵌汇编版的
- C/C++ code
__declspec(naked) int func( ... ){ __asm mov eax , [esp+4] __asm ret}
[解决办法]
这个不错。。[解决办法]
好了,纯粹C++版本来了。
- C/C++ code
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.我学习了
[解决办法]
[解决办法]
printf("%d", i);
我的答案
[解决办法]
std::cout<<static_cast<int>(i);
[解决办法]
CSDN就是好,很多书上学不到的东西,在这里可以学到。
感恩一下...
[解决办法]
学习的,不过还真复杂,你们搞科学研究吗
[解决办法]
不错 学习了~
[解决办法]
坐等楼主给分!~~~~~~~~~~~~~