C++中关于#define 使用的疑问

我们课件里 #define 的使用方法是#define 标识符 字符串常量
她举例:#define PI 3.1416
但是根据她给的概念 字符串常量是需要”“双引号括起来的,同时 按照她给的概念 3.1416应该算是实型常量
就是这点不能理解。。

img

img

#define实质上是宏定义。
如果你把它加入表达式运算,那就相当于一个const常量
若你#define int long long,那就是定义关键字,不需要双引号,你给int关键字下了个long long的定义
若加引号就是单纯的一个字符串常量
定义是有选择的,不是唯一的

对基本类型,编译器会自动匹配类型,如:
#define PI 3.1416 PI自动匹配double类型
#define A 3 A自动匹配int类型
#define B "3.1416" B自动匹配为字符串(因为C/C++中,把""括起来的认为是字符串)

你课件中所说的“#define 的使用方法是#define 标识符 字符串常量” 这么说是不严谨的,
字符串常量” 这里,可以是字符串,可以是值,也可以是表达式