WIN32和其他c字符串之间的区别

时间:2011-03-30 07:24:09

标签: c string arrays pointers

  

可能重复:
  Difference between WIN32 and other c string

我在一个小程序中得到了这个代码来读取文件

 #ifdef WIN32  

        unsigned char *buffer = (unsigned char *)alloca((unsigned int)ui.length);
 #else

         unsigned char buffer[ui.length];
 #endif

有人可以告诉我,为什么指针用于win32平台,而字符数组用于其他平台?

2 个答案:

答案 0 :(得分:2)

该代码旨在声明在编译时未知的长度数组。它可能是假设Windows目标的C ++编译器不支持声明这样的数组(例如,Visual C ++不支持它)。因此,当为Windows目标进行编译时,alloca()函数用于实现相同的效果。

答案 1 :(得分:1)

我想用于WIN32编译的编译器不支持C99可变长度数组声明。