【发布时间】:2011-07-15 12:13:00
【问题描述】:
我正在为我大学的编译器/语言课程编写一个玩具 C 编译器。
我正在尝试充实 C 中符号解析的语义,并提出了这个我尝试针对常规编译器 clang 和 gcc 的测试用例。
void foo() { }
int main() { foo(5); } // foo has extraneous arguments
大多数编译器似乎只对无关参数发出警告。
问题:这背后的根本原因是什么?
在我的符号表生成/解析阶段,我考虑将函数视为具有返回类型和几个参数化参数(基于语法)的符号,每个参数都有各自的类型。
谢谢。
【问题讨论】:
-
这是程序不严格符合,看我的回答
标签: c language-design