C语言允许以任何顺序进行声明

时间:2013-09-07 23:20:20

标签: c# parsing syntax compiler-construction

下面的C#代码很高兴被接受,我相信在Java中也是如此,而C ++编译器会对等价物进行barf,因为在声明之前使用了Foo:

class Program
{
    static void Main(string[] args)
    {
        Foo foo;
    }
}

class Foo
{
    int x;
}

这在语法和解析方面如何工作?具体来说,当编译器看到第一次出现Foo时,它如何知道将其解析为声明而不是其他东西?它是否与两个标识符或其他规则并列?

0 个答案:

没有答案