gpt4 book ai didi

c - C 中的词法错误与语法错误

转载 作者:太空狗 更新时间:2023-10-29 16:11:15 24 4
gpt4 key购买 nike

考虑以下 C 程序的第 3 行。

int main() {            /*Line 1 */
int I, N; /*Line 2 */
fro (I=0, I<N, I++); /*Line 3 */
}

在创建对象模块时识别编译器对此行的响应:

  1. 没有编译错误
  2. 只是一个词法错误
  3. 只有句法错误
  4. 词汇和语法错误

我的尝试:

第 3 行fro 而不是 C 的 for 关键字。因为,词法分析器不关心错误的关键字,那份工作语法分析器以确保正确的语法或关键字(即 for() 而不是 fro())。词法分析器对程序进行标记化。

Can you explain in formal way please?

最佳答案

fro不会匹配关键字,但词法分析会正常并且 fro将被归类为标识符。

在解析阶段,fro (I=0, I<N, I++)将转换为具有三个参数的函数调用。请注意,修改和读取 I同一序列点内的变量是未定义的行为。

在范围分析期间,编译器会提示不存在这样的函数,或者,如果编译器将看不见的函数视为隐式声明,链接器会提示存在对函数的 undefined reference 。

关于c - C 中的词法错误与语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33828058/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com