呵呵,很少写文章。 正好这次解决一个64位整数的问题遇到了,特此记录下来。
在windows系统中, 64位的整形可以定义为__int64, 而在linux环境下则采用C99标准定义为long long int. 因此为了适应跨平台的需要可以采用typedef定义自己的类型。
#ifndef WIN32
typedef long long int LONGLONG;
#else //unix, linux
typedef __int64 LONGLONG;
#endif
采用这样的定义后还需要处理赋值问题。
//win32
LONGLONG value = ....L; printf("%lld",value);
//Linux/unix
LONGLONG value = ...ll; printf("%I64d",value);
这样就可以在赋值,输入,输出上处理win32平台和linux平台的中文问题了。
其实,如果可以的话,还可以在赋值和输出部分定义宏来处理这种特定, 这样会比较精彩一些。就如果_TEXT宏一样。