此声明中的数组大小是多少

时间:2013-11-22 05:38:45

标签: c arrays sizeof

extern unsigned char pkt_data[];

这里的pkt_data尺寸是多少。我怎么知道pkt_data声明?

4 个答案:

答案 0 :(得分:2)

宣言所说的是,有一个名为pkt_data的数组。那里没有指定大小,除非你是写那行的人,否则它的具体内容应留给实际定义它的代码(即:为它预留空间)。

答案 1 :(得分:1)

extern声明。它只是声明,而不是定义。

这意味着pkt_data将在其他文件或其他一些链接模块中定义。

因此,请参阅pkt_data的定义以查看其大小。

答案 2 :(得分:0)

你还没有声明大小,extern对应你将定义pkt_data []一些别的地方但只有一次。你无法从外部宣言中获得规模。

答案 3 :(得分:0)

此声明

extern unsigned char pkt_data[];

以及这个

unsigned char pkt_data[];

不完整

无法确定不完整类型的大小。


  

我如何知道pkt_data声明?

你知道。

extern unsigned char pkt_data[];

是宣言。

这里缺少的是定义

回答这个问题:在可用的来源中搜索它。如果您无法访问pkt_data定义,则无法确定pkt_data的大小。

我们所知道的是pkt_data的地址将具有指针的siez。以下陈述完全有效,顺便说一下:

size_t s = sizeof(&pkt_data);