响水凹

欢迎来到 Guang-Wen Duan (Dennis Duan) 的个人 Wiki

用户工具

站点工具


computer:c:tips:typedef_varlen_array

typedef与变长数组

C99引入了变长数组(variable length array)的概念。当typedef定义的类型涉及变长数组时,数组的大小在typedef定义时确定,而不是在使用typedef定义的类型时才确定。

例如:

#include <stdio.h>
#include <stdlib.h>
 
int main(void)
{
        int n = 5;
        typedef int array[n];
 
        n = 10;
        array a;
 
        (void) printf("%ld\n", sizeof(a));
 
        exit(0);
}

如果sizeof(int)=4,则结果输出为20,而不是40。

computer/c/tips/typedef_varlen_array.txt · 最后更改: 2014/11/01 02:02 由 127.0.0.1