我读了词汇常量,词法操作符,词法范围等。术语“词法”如何改变常量的含义,如字符串常量,对于任何操作符,还是某个标识符的作用域?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编译器编译过程中的词法和语法分析是什么?