我讀了詞彙常量,詞法操作符,詞法範圍等。術語「詞法」如何改變常量的含義,如字符串常量,對於任何操作符,還是某個標識符的作用域?C++中術語「詞法」是指什麼?
8
A
回答
0
使用術語「詞彙常量」並不意味着一種不同的常數。
一般來說,當你在談論C++語法時,你會使用術語詞法這個詞法。與存儲在對象中的常量以及文件的範圍或矩陣上的運算符不同。
所以,如果我談論的是一行代碼,它有一個像這樣的常量:(32786)
我可以使用詞彙(也許是不必要的)來確認數字僅存在於C++標記中的含義。
所以當我在談論C++ tokens及其關係時,我使用的詞彙詞如wikipedia does。
7
「詞法」是指它與源代碼有關。例如,1
是一個詞法常量。 OTOH,sizeof(char)
也是一個編譯時積分常量表達式,但它不是一個詞法常量。詞法上,它是對sizeof
運營商的調用。
詞彙運算符處理源代碼。預處理器操作員屬於這一類。
在大多數情況下,我在程序的任何地方使用1
還是sizeof(char)
都沒有區別。但是,正如詞法運營#
或##
它使一個相當大的差異的參數,因爲在實際的代碼這些工作,而不是評估的結果:
#define STR(x) #x
std::string one = STR(1);
std::string also_one = STR(sizeof(char));
最後,詞法作用域裝置的程序源的所述部分代碼在哪裏存在標識符(被識別,可以使用)。這與動態範圍(也稱爲對象生命期)形成對比,動態範圍是對象存在的程序部分(保持其值並可通過指針或引用間接操作,即使名稱不在詞法範圍內) 。
string f(string x) { return "2" + x; } // main's "y" is not in lexical scope, however it is in dynamic scope, and will not be destroyed yet
int main(void)
{
string y = "5.2"; // y enters lexical scope and dynamic scope
string z = f("y"); // y leaves lexical scope as f is called, and comes back into lexical scope when f returns
return z.size();
// z leaves lexical and dynamic scope, destructor is called
}
相關問題
- 1. 指定詞彙術語時,post參數是什麼?
- 2. 術語「裸體約束」是指什麼?
- 3. 在網站開發中,什麼是「術語」,「分類術語」和「詞彙」?
- 4. 作爲技術術語,「曲面」是指什麼?
- 5. 什麼是Z3術語
- 6. 什麼是WordPress的術語
- 7. 指針指針的語法是什麼?
- 8. C++標準定義的術語「方法」是什麼?
- 9. 這是什麼語法? C++
- 10. 什麼是C#的語法@
- 11. 這是什麼C語法?
- 12. PHP中「 - >」語法的正確術語是什麼?
- 13. 在.NET Framework術語中,「替代版本」是指什麼?
- 14. 在JavaScript中,術語「副作用」指的是什麼?
- 15. 在Cassandra術語中,什麼是TimeUUID?
- 16. SOLR術語中的文檔是什麼?
- 17. 什麼是軟件開發術語的最佳詞典?
- 18. 術語「語義」是什麼意思?
- 19. 用於描述編程語言語法的術語是什麼?
- 20. C#中的等效語法是什麼?
- 21. c中以下語法是什麼?
- 22. C++中的(*)語法是什麼意思?
- 23. C#中空泛型參數<,>的術語是什麼?
- 24. C#中術語「模擬」的含義是什麼?
- 25. 在C++中,術語「自由功能」是什麼意思?
- 26. c語言中的語法是什麼語法作爲參數
- 27. tslint指出的「as語法」是什麼?
- 28. 這個語法指的是什麼?
- 29. Python中的技術術語詞典?
- 30. C編譯器編譯過程中的詞法和語法分析是什麼?