Laz*_*zer 20 c c++ compiler-construction gcc
我在http://gcc.gnu.org/上搜索这些信息,但谷歌搜索site:http://gcc.gnu.org/
没有产生任何结果.
任何有关此文档的指针也会有所帮助.
通过我的意思是仅传递源代码的原始表示,而不是维基百科建议的多传递定义.
据我的编译器设计课程中的某人告诉我,gcc 执行一次传递,而其他编译器(例如 Visual Studio(默认)使用的编译器)使用两次传递。这就是为什么如果您以循环方式使用类,则必须在 C++ 中前向声明类。
Class A {
B* b;
}
Class B {
A* a;
}
Run Code Online (Sandbox Code Playgroud)
C# 和其他语言不需要这样做,因为第一遍构建引用,第二遍编译。
但话又说回来,我不是编译器方面的专家。