作者HZYSoft (PCMan 2004)
看板C_and_CPP
标题Re: [问题] __int64位啥不能assign值进去
时间Wed Jan 25 03:25:51 2006
※ 引述《feosus (FEOSUS)》之铭言:
: 我的程式用到__int64的data type
: 在compiler时却发生了错误
: __int64 x;
: cin >> x;
: 他显示no operator defined which takes a right-hand operand of type '__int64'
: (orthere is no acceptable conversion)
: 感觉非常奇怪,原本使用的环境是Visual c++ 6.0
: 後来我换了一个环境Dev c++却又可以成功的执行
: 小弟是新手不知道有没有版友可以帮我解答<(_ _)>
因为本来就没有 __int64 这种东西
这是微软自创语法.... 不能用很正常
64 bit 整数各家 compiler 支援方式不一
VC++ 用 __int64
gcc 用 long long
你可以 typedef long long __int64
你以为这样就结束了吗?没有
你用 c++ 还好,你如果用了 C 的 printf....
很不幸, VC++ 和 gcc 在 format 对 64 bit int 的指定方式不同
一个是 I64
另一个是 lld
基本上大部分的 compiler 都差不多,一般是只有微软的会跟大家都不一样
所以建议你除非必要不要用 VC++,以免自找麻烦
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.167.100.8
1F:→ UNARYvvv:long long 是 %lld 01/25 03:26
2F:→ HZYSoft:谢谢更正,刚刚漏打,是 lld 没错 @@ 亏我前天才用到 >< 01/25 03:26
※ 编辑: HZYSoft 来自: 218.167.100.8 (01/25 03:27)
3F:推 cplusplus:要用的话请用VC7 cin cout已经有支援long long的IO 01/25 08:17