当我使用#define
(例如#define pi 3.141593
)定义数值常数时,是int
,float
,double
还是什么?C预处理器#define声明的变量是什么类型?
1
A
回答
2
当你定义它时,它们都不是这些。 预处理器将在您的代码中查找pi
,并在尝试实际编译代码之前将其替换为3.141593
。
根据Wikipedia:
每当标识符出现在它被替换为替换令牌列表,它可以是空的源代码。
该类型将由您使用该宏的上下文来定义。
+0
ty和thx给所有来这里帮助我的人 –
4
都没有。这是一个字典替换,也就是说,它将代替pi与3.141593无论它出现在哪里。
1
这个#define
宏的所有预处理器都是文本替换,它不知道pi
是什么类型。
这里的pi
的类型取决于3.141593
,这是double
类型的文字。
1
经过预处理后,宏pi
将被替换为文字3.141593
,并且浮点文字的类型为double
。如果您希望文字具有类型float
,那么您必须添加f
后缀 - 因此,文字3.141593f
将具有类型float
。
0
#define
没有任何数据类型的概念。它简单地定义了预处理器的文本替换。
编译器会看到被替换的文本,并根据C标准给出的rules确定常量的类型。
相关问题
- 1. C++ #define预处理器
- 2. C++预处理器变量
- 3. C预处理器:#define in C ...咨询
- 4. 声明变量类型的好处
- 5. #define in #define;预处理器中发生了什么?
- 6. #define预处理器的范围C
- 7. 这个未声明的变量应该是什么类型?
- 8. 什么是变量声明的dart函数类型语法?
- 9. 声明变量是某种类型的
- 10. C++模板变量类型声明
- 11. 什么`... |类型声明中的b - > c是什么意思?
- 12. 为什么C++指针*关联到声明的变量,而不是类型?
- 13. 这是什么类型的声明?
- 14. arduino中的预处理器声明
- 15. 检查函数是否用C预处理器声明?
- 16. 声明类变量C++
- 17. 什么是C++声明一个变量不变的点
- 18. Javascript变量声明:什么是“var myVariable = {}”?
- 19. Python的处理未声明的变量
- 20. 什么是返回类型if`声明
- 21. Django - 为什么模型类中声明的变量静态
- 22. 我的变量应该声明为什么类型?
- 23. 为什么Java变量声明中的类型不同?
- 24. 什么#define标识符保留给预处理器?
- 25. 什么是#define字符串的类型?
- 26. 是多么重要声明正确的变量类型
- 27. 预处理器宏变量
- 28. 通过预处理器指令检查变量的类型
- 29. 什么是__DARWIN_C_LEVEL C预处理符号?
- 30. 为什么要在注释中声明PHP变量类型?
作为double的常量值,不可变。 – BLUEPIXY