gpt4 book ai didi

c - WIN32和其他c字符串的区别

转载 作者:太空宇宙 更新时间:2023-11-04 01:41:06 25 4
gpt4 key购买 nike

我在一个读取文件的小程序中获取了这段代码:

#ifdef WIN32
unsigned char *buffer = (unsigned char *)alloca((unsigned int)ui.length);
#else
unsigned char buffer[ui.length];
#endif

为什么Win32平台使用指针,其他平台使用字符数组?

最佳答案

C99 之前似乎不支持在堆栈上定义可变长度数组。 alloca 本质上是这样做的。似乎这个程序员有一个不支持 VLA 的 WIN32 编译器,所以正在使用(支持良好但非标准的)alloca。

堆栈溢出中的更多信息:Why is the use of alloca() not considered good practice?这个相当有用的数组摘要 http://www.programmersheaven.com/2/Pointers-and-Arrays-page-2 Arthur 在堆栈溢出帖子中提到。

关于c - WIN32和其他c字符串的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5483209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com