在Linux下,可以定义unsigned long long数据类型:
typedef unsigned long long ULONG64;
但是在Windows下,VC会对上一行报错:error C2632: 'long' followed by 'long' is illegal
请问是怎么回事啊?
10 个解决方案
#1
VC6 不可以 vc7和VC8可以的
VC6对C++标准支持的不好, 这个不支持
你应该换编译器了, VC6是一个很糟糕的编译器
VC6对C++标准支持的不好, 这个不支持
你应该换编译器了, VC6是一个很糟糕的编译器
#2
VC8是可以的
#3
你用的是VC6吧,VS2005支持这么写
long long 是C99的类型,如果编译器不支持C99,就会报错
#4
__int64和unsigned __int64
#5
顶一下
#6
试了一下
vc6不可以
vc6不可以
#7
long long 是C99扩展内容之一,
VC6不支持,
但是VS 2005可以 。。。
VC6不支持,
但是VS 2005可以 。。。
#8
【Ref】
3、新增数据类型
_Bool
值是0或1。C99中增加了用来定义bool、true以及false宏的头文件夹<stdbool.h>,以便程序员能够编写同时兼容于C与C++的应用程序。在编写新的应用程序时,应该使用
<stdbool.h>头文件中的bool宏。
_Complex and _Imaginary
C99标准中定义的复数类型如下:float_Complex; float_Imaginary; double_Complex; double_Imaginary; long double_Complex; long double_Imaginary.
<complex.h>头文件中定义了complex和imaginary宏,并将它们扩展为_Complex和_Imaginary,因此在编写新的应用程序时,应该使用<stdbool.h>头文件中的complex和imaginary宏。
long long int
C99标准中引进了long long int(-(2e63 - 1)至2e63 - 1)和unsigned long long int(0 - 2e64 - 1)。long long int能够支持的整数长度为64位。
更多内容请看:【当然,看标准文档更好】
C89和C99标准比较:
http://www.programfan.com/blog/article.asp?id=14051
3、新增数据类型
_Bool
值是0或1。C99中增加了用来定义bool、true以及false宏的头文件夹<stdbool.h>,以便程序员能够编写同时兼容于C与C++的应用程序。在编写新的应用程序时,应该使用
<stdbool.h>头文件中的bool宏。
_Complex and _Imaginary
C99标准中定义的复数类型如下:float_Complex; float_Imaginary; double_Complex; double_Imaginary; long double_Complex; long double_Imaginary.
<complex.h>头文件中定义了complex和imaginary宏,并将它们扩展为_Complex和_Imaginary,因此在编写新的应用程序时,应该使用<stdbool.h>头文件中的complex和imaginary宏。
long long int
C99标准中引进了long long int(-(2e63 - 1)至2e63 - 1)和unsigned long long int(0 - 2e64 - 1)。long long int能够支持的整数长度为64位。
更多内容请看:【当然,看标准文档更好】
C89和C99标准比较:
http://www.programfan.com/blog/article.asp?id=14051
#9
用taodm的办法。
#10
__int64 a; //定义64 bits有符号整数
unsigned __int64 b; //定义64 bits无符号整数
a = -9223372036854775807;
b = 18446744073709551615;
printf("%I64u\n",b); //输出64 bits无符号整数
printf("%I64X\n",b); //以十六进制形式输出64 bits整数
printf("%I64d\n",a); //输出64 bits有符号整数
unsigned __int64 b; //定义64 bits无符号整数
a = -9223372036854775807;
b = 18446744073709551615;
printf("%I64u\n",b); //输出64 bits无符号整数
printf("%I64X\n",b); //以十六进制形式输出64 bits整数
printf("%I64d\n",a); //输出64 bits有符号整数
#1
VC6 不可以 vc7和VC8可以的
VC6对C++标准支持的不好, 这个不支持
你应该换编译器了, VC6是一个很糟糕的编译器
VC6对C++标准支持的不好, 这个不支持
你应该换编译器了, VC6是一个很糟糕的编译器
#2
VC8是可以的
#3
你用的是VC6吧,VS2005支持这么写
long long 是C99的类型,如果编译器不支持C99,就会报错
#4
__int64和unsigned __int64
#5
顶一下
#6
试了一下
vc6不可以
vc6不可以
#7
long long 是C99扩展内容之一,
VC6不支持,
但是VS 2005可以 。。。
VC6不支持,
但是VS 2005可以 。。。
#8
【Ref】
3、新增数据类型
_Bool
值是0或1。C99中增加了用来定义bool、true以及false宏的头文件夹<stdbool.h>,以便程序员能够编写同时兼容于C与C++的应用程序。在编写新的应用程序时,应该使用
<stdbool.h>头文件中的bool宏。
_Complex and _Imaginary
C99标准中定义的复数类型如下:float_Complex; float_Imaginary; double_Complex; double_Imaginary; long double_Complex; long double_Imaginary.
<complex.h>头文件中定义了complex和imaginary宏,并将它们扩展为_Complex和_Imaginary,因此在编写新的应用程序时,应该使用<stdbool.h>头文件中的complex和imaginary宏。
long long int
C99标准中引进了long long int(-(2e63 - 1)至2e63 - 1)和unsigned long long int(0 - 2e64 - 1)。long long int能够支持的整数长度为64位。
更多内容请看:【当然,看标准文档更好】
C89和C99标准比较:
http://www.programfan.com/blog/article.asp?id=14051
3、新增数据类型
_Bool
值是0或1。C99中增加了用来定义bool、true以及false宏的头文件夹<stdbool.h>,以便程序员能够编写同时兼容于C与C++的应用程序。在编写新的应用程序时,应该使用
<stdbool.h>头文件中的bool宏。
_Complex and _Imaginary
C99标准中定义的复数类型如下:float_Complex; float_Imaginary; double_Complex; double_Imaginary; long double_Complex; long double_Imaginary.
<complex.h>头文件中定义了complex和imaginary宏,并将它们扩展为_Complex和_Imaginary,因此在编写新的应用程序时,应该使用<stdbool.h>头文件中的complex和imaginary宏。
long long int
C99标准中引进了long long int(-(2e63 - 1)至2e63 - 1)和unsigned long long int(0 - 2e64 - 1)。long long int能够支持的整数长度为64位。
更多内容请看:【当然,看标准文档更好】
C89和C99标准比较:
http://www.programfan.com/blog/article.asp?id=14051
#9
用taodm的办法。
#10
__int64 a; //定义64 bits有符号整数
unsigned __int64 b; //定义64 bits无符号整数
a = -9223372036854775807;
b = 18446744073709551615;
printf("%I64u\n",b); //输出64 bits无符号整数
printf("%I64X\n",b); //以十六进制形式输出64 bits整数
printf("%I64d\n",a); //输出64 bits有符号整数
unsigned __int64 b; //定义64 bits无符号整数
a = -9223372036854775807;
b = 18446744073709551615;
printf("%I64u\n",b); //输出64 bits无符号整数
printf("%I64X\n",b); //以十六进制形式输出64 bits整数
printf("%I64d\n",a); //输出64 bits有符号整数