我的問題是:編譯器在什麼階段執行名稱lookup
。我認爲它可能是在執行語義分析時,但我只想確定,因爲當我搜索編譯器分析時,他們沒有提到任何階段(詞法,語法,語義)中的名稱查找。C++代碼翻譯和名稱查詢
0
A
回答
2
在C++中,名稱查找通常需要作爲語法分析(解析)的一部分完成,因爲名稱是類型名稱或模板名稱,會影響語法。如果事情可以獨立於類型名稱或模板名稱進行解析,則名稱查找可能會延遲到稍後,但通常這是一個實現細節。
2
這是一般的語義分析,但在C++中,這些階段都是交織在一起的,所以如果有人說別的話,這是可以理解的。
0
在C/C++中,有時您無法確定語法元素的語義含義,而無需知道其類型(類型,變量等)。大多數C++編譯器使用生成的語法(yacc,bison)來構建語法樹,因此名稱查找必須在此之後。
請考慮以下內容:
A * B;
這是A *類型的變量B的聲明,或者是對它的參數A和B調用operator *的語句。
相關問題
- 1. 翻譯源代碼中的註釋和區域名稱
- 2. C#/ ASP.NET短代碼翻譯
- 3. 翻譯C++代碼片段
- 4. C++代碼翻譯和解釋
- 5. 將C#代碼翻譯成Ruby代碼
- 6. 翻譯查詢
- 7. 翻譯從C#代碼示例爲C++
- 8. 翻譯查詢laravel
- 9. Java代碼翻譯
- 10. pysnmp prettyPrint翻譯OID名稱
- 11. 翻譯鋼軌查詢源碼
- 12. 翻譯僞代碼轉換成C++
- 13. 將Numpy代碼翻譯成C#
- 14. 彙編&C - 翻譯C'S代碼彙編
- 15. 將vb.net翻譯爲C#:一行代碼
- 16. C++到Java代碼翻譯:numberToBarcode()
- 17. 將C代碼翻譯成Haskell
- 18. 將obj-c代碼翻譯成swift
- 19. 鑿子代碼翻譯成Verilog/C++
- 20. 翻譯簡單的C代碼
- 21. 將此代碼從C#翻譯爲VB.NET
- 22. 將MVVM WPF C#代碼翻譯成vb.net
- 23. C++/CLI如何翻譯此代碼?
- 24. 代碼翻譯,用Python和Ruby
- 25. Postgres 9.0 +翻譯功能和ASCII代碼
- 26. 由當前翻譯單元編譯的對象的名稱C
- 27. cakephp翻譯查詢cakephp模型查詢
- 28. 將SPARQL查詢翻譯爲SQL查詢
- 29. MySQL到MongoDB查詢翻譯
- 30. 查詢語言翻譯器