在 C 语言中,"extern int (x)[]"和"extern int x[]"有什么区别?



本文末尾有声明extern int (x)[]。括号有什么作用吗?还是只是为了混淆?

我的猜测是,带括号的x是一个外部整数数组(这就是文章所说的),但没有这些x将是一个整数的外部数组。如果这是真的,那么定义会有什么不同?他们不是都是int x[]吗?

没有,parens在那里什么都没做。你链接到的文章解释了为什么:

区分两者的最简单方法是查看放置类型说明符的。如果类型说明符紧跟在左括号,该括号是函数的开头描述符,类型是函数参数的一部分。空的括号也表示函数。否则括号为分组(也许不必要,但最好有太多太少)表达式。

还要注意,"外部int数组"one_answers"外部int阵列"是完全相同的东西——"外部性"总是指向被声明的对象,在本例中是一个数组。就我个人而言,我认为描述它的第一种方式在技术上是不准确的,只是令人困惑。

在这种情况下,副题没有任何意义。通常,您对函数指针或标记更强的绑定使用Paradishesion,因为所有运算符都有不同的绑定级别
extern关键字标记,这只是一个声明,但该数组的实际定义将发生在其他地方。

相关内容

  • 没有找到相关文章

最新更新