位于WinNT.h中的ANYSIZE_ARRAY
的目的是什么?
我在2004年看到一篇关于它的MSDN博客文章,但它对我没有意义。
答案 0 :(得分:5)
我假设你在谈论this blog post。
当变量大小(编译时未知)数组是结构的一部分时,通常使用它:
typedef struct {
int CommonFlags
int CountOfThings;
THING Things[ANYSIZE_ARRAY]; //Things[1];
} THINGSANDFLAGS;
要使用这些结构,您通常首先调用所需的API来获取数据的大小,然后分配足够大的内存块,最后再次调用相同的API,以便它可以填充数据...
答案 1 :(得分:1)
来自this page:
在C中,可变大小的数组声明为
a[1]
或a[ANYSIZE_ARRAY]
,其中ANYSIZE_ARRAY
定义为1
。然后使用它就好像它更大。