void* operator new(unsigned int size,const char* file,long line);
编译报错说必须为size_t类型。。。。
9 个解决方案
#1
我觉得可能是因为机器字长的原因,size_t一般使用long定义的,long在64位系统下为64位整数,在32位系统下,为32位整数,如果限定类型的话,可能会使用上不方便。
以上是推测供参考~
以上是推测供参考~
#2
我的机子是64位,有这种可能~
#3
size_t的长度 估计是平台无关的
#4
size_t是系统根据具体环境经过重新定义的无符号整形类型,可以确保“足够大”来满足应用需要
#5
size_t就是一个unsigned long
#6
size_t是与平台相关的,32位系统是unsigned int,32位的;64位系统是unsigned __int64或unsigned long long,64位的。这样是为了移植性,保持语义一致性。
另外,long的长度取决于编译器的实现,基本上碰得到的都是32位,包括64位系统。
C++规范中并没有定义char、int和long的长度,只是要求char <= int <= long
另外,long的长度取决于编译器的实现,基本上碰得到的都是32位,包括64位系统。
C++规范中并没有定义char、int和long的长度,只是要求char <= int <= long
#7
size_t经由typedef可以做到平台无关。
#8
VS IDE中,在不明白的符号上点鼠标右键,选转到定义。
C:\Program Files\Microsoft Visual Studio 10.0\VC\crt\src\crtdefs.h
C:\Program Files\Microsoft Visual Studio 10.0\VC\crt\src\crtdefs.h
479: #ifndef _SIZE_T_DEFINED
480: #ifdef _WIN64
481: typedef unsigned __int64 size_t;
482: #else /* _WIN64 */
483: typedef _W64 unsigned int size_t;
484: #endif /* _WIN64 */
485: #define _SIZE_T_DEFINED
486: #endif /* _SIZE_T_DEFINED */
#9
因为这是规定!
你可以挑战权威,但是不能挑战规定!
你可以挑战权威,但是不能挑战规定!
#1
我觉得可能是因为机器字长的原因,size_t一般使用long定义的,long在64位系统下为64位整数,在32位系统下,为32位整数,如果限定类型的话,可能会使用上不方便。
以上是推测供参考~
以上是推测供参考~
#2
我的机子是64位,有这种可能~
#3
size_t的长度 估计是平台无关的
#4
size_t是系统根据具体环境经过重新定义的无符号整形类型,可以确保“足够大”来满足应用需要
#5
size_t就是一个unsigned long
#6
size_t是与平台相关的,32位系统是unsigned int,32位的;64位系统是unsigned __int64或unsigned long long,64位的。这样是为了移植性,保持语义一致性。
另外,long的长度取决于编译器的实现,基本上碰得到的都是32位,包括64位系统。
C++规范中并没有定义char、int和long的长度,只是要求char <= int <= long
另外,long的长度取决于编译器的实现,基本上碰得到的都是32位,包括64位系统。
C++规范中并没有定义char、int和long的长度,只是要求char <= int <= long
#7
size_t经由typedef可以做到平台无关。
#8
VS IDE中,在不明白的符号上点鼠标右键,选转到定义。
C:\Program Files\Microsoft Visual Studio 10.0\VC\crt\src\crtdefs.h
C:\Program Files\Microsoft Visual Studio 10.0\VC\crt\src\crtdefs.h
479: #ifndef _SIZE_T_DEFINED
480: #ifdef _WIN64
481: typedef unsigned __int64 size_t;
482: #else /* _WIN64 */
483: typedef _W64 unsigned int size_t;
484: #endif /* _WIN64 */
485: #define _SIZE_T_DEFINED
486: #endif /* _SIZE_T_DEFINED */
#9
因为这是规定!
你可以挑战权威,但是不能挑战规定!
你可以挑战权威,但是不能挑战规定!