2015-09-28 56 views

回答

2

当你定义它时,它们都不是这些。 预处理器将在您的代码中查找pi,并在尝试实际编译代码之前将其替换为3.141593

根据Wikipedia

每当标识符出现在它被替换为替换令牌列表,它可以是空的源代码。

该类型将由您使用该宏的上下文来定义。

+0

ty和thx给所有来这里帮助我的人 –

4

都没有。这是一个字典替换,也就是说,它将代替pi3.141593无论它出现在哪里。

1

这个#define宏的所有预处理器都是文本替换,它不知道pi是什么类型。

这里的pi的类型取决于3.141593,这是double类型的文字。

1

经过预处理后,宏pi将被替换为文字3.141593,并且浮点文字的类型为double。如果您希望文字具有类型float,那么您必须添加f后缀 - 因此,文字3.141593f将具有类型float

0

#define没有任何数据类型的概念。它简单地定义了预处理器的文本替换。

编译器会看到被替换的文本,并根据C标准给出的rules确定常量的类型。