WIN32与其他c字符串之间的差异
我在一个读取文件的小程序中得到了以下代码:WIN32与其他c字符串之间的差异,c,arrays,string,pointers,C,Arrays,String,Pointers,我在一个读取文件的小程序中得到了以下代码: #ifdef WIN32 unsigned char *buffer = (unsigned char *)alloca((unsigned int)ui.length); #else unsigned char buffer[ui.length]; #endif 为什么Win32平台使用指针,其他平台使用字符数组?以前似乎不支持C99在堆栈上定义可变长度数组。阿洛卡基本上做到了这一点。似乎这个程序员有一个不支持VLA的WIN32编译
#ifdef WIN32
unsigned char *buffer = (unsigned char *)alloca((unsigned int)ui.length);
#else
unsigned char buffer[ui.length];
#endif
为什么Win32平台使用指针,其他平台使用字符数组?以前似乎不支持C99在堆栈上定义可变长度数组。阿洛卡基本上做到了这一点。似乎这个程序员有一个不支持VLA的WIN32编译器,所以使用了(支持良好但非标准的)alloca
更多关于堆栈溢出的信息:Arthur在堆栈溢出文章中提到了这一非常有用的数组摘要。以前似乎不支持C99在堆栈上定义可变长度数组。阿洛卡基本上做到了这一点。似乎这个程序员有一个不支持VLA的WIN32编译器,所以使用了(支持良好但非标准的)alloca
更多关于堆栈溢出的信息:这是Arthur在堆栈溢出文章中提到的非常有用的数组摘要。Windows中没有什么特别之处。差异是微软Visual C++(C99特性),作者可能认为MSVC==Win32,因此创建了条件。 < P> Windows中没有什么特殊的。差异是微软Visual C++(C99特性),作者可能认为MSVC==Win32,因此创建了条件。