【问题标题】:array definition vs array declaration数组定义 vs 数组声明
【发布时间】:2014-11-06 18:33:24
【问题描述】:

我有一个全局数组。该数组的内存将从数据段中分配。 我很困惑我应该怎么称呼这个数组。是数组声明还是数组定义? 我认为既然分配了内存,这应该是数组定义。

int array[4][5][2]; //  declaration or definition? 4*(4+5+2) bytes will be allocated
int main()
{
    return 0;
}

【问题讨论】:

    标签: c


    【解决方案1】:

    根据 C 标准(6.7 声明)

    5 声明指定集合的​​解释和属性 的标识符。一个标识符的定义是一个声明 那个标识符:

    ——对于一个对象,导致为该对象保留存储空间;

    正如您自己指出的,数组的内存保留在数据部分中,然后您有一个数组声明,同时也是一个定义。

    【讨论】:

      【解决方案2】:

      在这种情况下,两者都是:声明 + 定义。

      如果您在单独的文件中有类似的内容:

      extern int array[4][5][2];
      

      那只是声明它,因为定义发生在其他“外部”文件中。

      【讨论】:

        猜你喜欢
        • 2022-01-02
        • 1970-01-01
        • 1970-01-01
        • 2017-07-27
        • 1970-01-01
        • 1970-01-01
        • 2023-02-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多