C++代码转换和名称查找
C++ code translation and name lookup
我的问题是:编译器在哪个阶段执行名称lookup
。我认为可能是在它执行语义分析时,但我只是想确保,因为当我搜索编译器分析时,他们没有提到任何阶段的名称查找(词汇、语法、语义)。
在C++中,名称查找通常需要作为语法分析(解析)的一部分来完成,因为当名称是类型名称或模板名称时,会影响语法。 在某种程度上,可以独立解析类型名称或模板名称的内容,名称查找可能会推迟到以后,但这通常是一个实现细节。
一般来说是语义分析,但在C++中,各个阶段都是交织在一起的,所以如果有人说别的话是可以理解的。
在 C/C++ 中,有时您无法确定句法元素的语义含义,而不知道它的种类(类型、变量等)。大多数C++编译器使用生成的语法(yacc,bison)来构建语法树,因此名称查找必须在此之后。
请考虑以下事项:
A * B;
这要么是类型 A * 的变量 B 的声明,要么是在其参数 A 和 B 上调用运算符 * 的语句。
相关文章:
- Printf 命令不打印时添加了查找常见除数的新代码
- 如何使用 lldb 查找我的代码运行的位置
- 用于查找数组中最大元素的出现次数的代码,给出分段错误
- 在代码块中查找输出文件
- 旧C++代码中的目录查找导致 OS X Catalina 10.15 中的目录错误
- 用于查找最低共同祖先的代码不适用于某些测试用例
- 查找在 4 和问题中代码失败的测试用例
- 代码以查找数组中的最大数字,但它仅将第一个数字显示为最大数字. 有人请告诉我为什么
- 如何查找导致结果不一致的代码
- 用于查找连续子数组的最大总和的代码使测试用例失败
- 我正在努力在随机数组中查找最小值,有人知道为什么我的代码不起作用?C++
- 我的代码似乎在查找最大数字时存在语法错误
- 在编写代码以查找数组中的对数时获取分段错误
- 我在代码中收到一个运行时错误,该错误如何通过修改最多一个元素来查找数组是否可以变得不减少
- 通过查找一对项目的代码获取错误的输出,在给定的总和相等的给定列表中列表
- 在C++代码中查找编号函数
- C 功能:读取直到文件结束 - 查找代码中的错误
- 是否可以使用内联汇编在 Visual Studio 2010 c++ 中查找代码的地址?
- 查找代码中的逻辑缺陷或低效率
- 调试__do_global_dtors_aux以查找代码位置