查MSDN得:
size_t unsigned integer Result of sizeof operator. STDDEF.H and other include files
出現C4276 warning是因爲測試 32位代碼的64位兼容性問題而出現的警告,由/WP64開關控制,默認是打開的。
size_t 是針對系統定製的一種數據類型,一般是整形,因爲C/C++標準只定義一最低的位數,而不是必需的固定位數。而且在內存裏,對數的高位對齊存儲還是低位對齊存儲各系統都不一樣。爲了提高代碼的可移植性,就有定議le 這樣的數據類型。
size_t 在32位系統上定義爲 unsigned int,在64位系統上定義爲 unsigned long.
STDDEF.H的內容
#ifndef _SIZE_T_DEFINED
#ifdef _WIN64
typedef unsigned __int64 size_t;
#else
typedef _W64 unsigned int size_t;
#endif
#define _SIZE_T_DEFINED
#endif
解決方法:(注:本人的是vs2005)
Project ->Properties ->C/C++ ->General-> Detect 64bit Portability Issues,設置成否