#define和float使用区别

这里头文件下用#define定义派等于3.14和在函数体中用float定义有何区别

没区别,使用#define定义一个常量在后续使用会很方便。
如果不用#define定义而是直接使用3.14的话,一旦你需要将3.14进行修改,不如改成3.1415926xxxx,那你需要在代码将所有使用3.14的地方都进行修改,这样效率低而且可能会有遗漏。如果使用#define定义那你值需要在定义的地方进行修改就行了。

这里是哪里?
#define PI 3.14
用常量定义的好处
一是方便修改,比如代码中多处要用到PI,如果你哪天觉得3.14精度不够,要改为3.1415926,那么你只需要修改常量定义的地方,代码是不需要改的,很方便,而且不会出错。如果是直接用float,或者直接写3.14,那么你要整个代码中去搜索,万一遗漏或改错,就很麻烦。
二是方便阅读。代码只需要写PI,而不用写3.14。PI一看就知道是圆周率,但3.14就不一定了。更别说其它大家不不知道是干啥的数字的情况了。

#define是可以全局使用的
而在函数体用float只能在该函数体使用,属于局部变量

float是单精度类型,精度是6位小数,储存大小是4个字节,这里的精度是指他们的最大保留位数,可以人为指定保留到第几位,但不能超过这个精度范围,超过的部分会取近似值,如果没有规定取几位小数,会默认保留6位,这里的6位是从第一个数字开始到第六个数字结束,而不是六位小数,例如520.1314888,这里系统会精确保留520.131,后面的488会近似保留,最后系统输出的可能会是这样的520.131652

当然有区别,define 是宏,不是变量,是编译的时候所有代码中都会替换
而如果代码中定义,那就是变量,那个要内存的,而且变量就涉及到作用域