这个问题的背景是:我正在尝试了解编译器的工作原理。我学到了很多新东西:扫描器、解析器、AST、IR、优化、前端、后端、LL(1)等等。我的进步很渐进且很有趣。现在,我想做一些实际的工作。
从程序员的角度来看,我知道为什么typedef struct { int x; mytype* next; } mytype;
不能编译,我也知道正确的语法typedef struct mystruct { int x; struct mystruct* next; } mytype;
,但我想知道在编译过程中到底发生了什么问题。我正在使用gcc,我想知道如何使用gcc开发人员选项-fdump-...来回答这个问题。