在把win上面别人c++代码移植到linux上面的时候,编译时出现此奇怪的错误;
错误如下:
xxxxx.cpp:379:20: error: expected initializer before ¡®y1¡¯
unsigned __int64 y1, y2, y3, z1, z2, z3;
^
xxxxx.cpp:381:3: error: ¡®y1¡¯ was not declared in this scope -----------上面不就是定义吗?
y1 = (z << 4) + a;
^
按照网上找的资料弄了半天,问题依旧!
既然说没定义,怀疑是不是 __int64 有问题?
__int64定义如下:
typedef long long __int64;
typedef unsigned long long UINT64;
unsigned __int64好像有点怪怪的,不就是无符号64位吗?
直接使用UINT64 或者 unsigned long long 不就得啦?
后来把unsigned __int64 替换为UINT64之后问题解决,即如下:
UINT64 y1, y2, y3, z1, z2, z3;