自学内容网 自学内容网

10.19学习

1.define

在 C 语言中, #define  是一个预处理指令,用于定义宏。宏是一种在编译之前在源代码中进行文本替换的工具。使用  #define  可以创建符号常量,这些常量在编译时会被替换为指定的值。

基本用法

#define 宏名 替换文本

宏名:是你定义的宏的名称,通常使用大写字母以区分宏和普通变量。

替换文本:是宏被替换的文本,可以是常量、表达式、甚至是函数。

示例

#define PI 3.14159

在这个例子中, PI  是一个宏名, 3.14159  是替换文本。在编译之前,预处理器会将代码中所有出现的  PI  替换为  3.14159 。

带参数的宏

 #define  还可以定义带有参数的宏,类似于函数,但它们在编译时进行简单的文本替换,不涉及函数调用的开销。

#define SQUARE(x) ((x) * (x))

在这个例子中, SQUARE  是一个带参数的宏,它将参数  x  平方。在使用这个宏时,你需要在  x  的地方提供相应的参数值:

int area = SQUARE(4); // 在编译时,这将被替换为 (4 * 4)

★注意事项

①宏定义没有数据类型:宏不关心数据类型,它只是简单的文本替换,因此使用时需要注意数据类型的匹配。

②宏定义没有作用域:宏定义在整个文件中都是可见的,除非使用  #undef  取消定义。

③宏定义不是条件的:宏定义一旦定义,就会在编译时替换所有出现的宏名,不会根据条件判断是否替换。

④宏定义和函数的区别:宏定义在编译时进行文本替换,而函数调用在运行时进行,因此宏可以提高程序的效率,但也可能引起一些问题,如宏名冲突、重复替换等。

 

2.double

在 C 语言中, double  是一种数据类型,用于表示双精度浮点数。双精度浮点数是一种可以存储非常大或非常小的数值的数据类型,它具有比单精度浮点数(如  float  类型)更高的精度。

★特点

精度: double  类型通常有一个比  float  更高的精度。在大多数系统上, float  类型提供大约6位有效数字,而  double  类型提供大约15位有效数字。

范围: double  类型可以表示的数值范围也比  float  类型大得多。

存储大小: double  类型通常占用8个字节(64位)的内存空间,而  float  类型通常占用4个字节(32位)。

★语法

声明一个  double  类型的变量的语法如下:

double 变量名;

或者在声明时直接初始化:

double 变量名 = 值;

示例

double myNumber = 3.14159265358979323846;

double myOtherNumber = 1e10; // 使用科学记数法表示的大数

在这个例子中, myNumber  和  myOtherNumber  是两个  double  类型的变量,分别存储了圆周率的一个近似值和一个用科学记数法表示的大数。

★注意事项

在赋值时,如果数值太大或太小,超出了  double  类型的范围,结果可能是不确定的。

在进行浮点数运算时,由于舍入误差,结果可能不是完全精确的。

在比较浮点数时,应该考虑到精度问题,避免直接比较两个浮点数是否相等。

 double  类型在科学计算、工程应用和其他需要高精度浮点运算的场合中非常有用。

 

3. %.4lf

在 C 语言中, %.4lf  是一个格式说明符,用于  printf  或  scanf  函数中,它具有特定的含义:

 % :表示开始一个格式说明符。

 .4 :指定浮点数的精度,即小数点后的位数。在这里, .4  表示浮点数应该有4位小数。

 lf :表示参数是一个  double  类型的浮点数。

因此, %.4lf  用于  printf  函数时,会打印一个  double  类型的浮点数,保留4位小数。例如:

double num = 123.456789;

printf("%.4lf\n", num);

这将输出:

123.4568

同样地, %.4lf  用于  scanf  函数时,会从输入中读取一个浮点数,并将其存储在  double  类型的变量中。例如:

double num;

scanf("%.4lf", &num);

这将从输入中读取一个浮点数,并将其存储在  num  变量中,只保留4位小数。

请注意, %.4lf  只影响输出或输入的格式,并不改变变量本身存储的值。如果需要更精确地控制浮点数的表示,可以使用  %f  格式说明符,并结合  printf  函数的精度设置功能。

 

4.实型常量的表示

实型常量用十进制表示,有如下两种表示方法:

✮小数形式:3.14159265、-0.618等等。其中小数点前或后的唯一0可以省略,但不能全省略,例如100.、.618、-.618、.0、0.等等都是合法的表示方法。

✮指数形式:当一个实数很小或很大时,用小数形式表示起来就十分困难,而用指数形式表示则很方便,其格式为:±尾数部分E±指数部分 (E也可小写)

例如:-1.2e+2表示-1.2×102、1.32E-2表示1.32×10-2等等,e或E前后必须都有数字,且E后必须为整数。

 

5.说明符类型

不加后缀说明的所有实型常量都被解释成double类型;在实型常量后加上字符f或F后缀,可以将其说明为float类型;在实型常量后加上字符l或L后缀,可以将其说明为long double类型。

例如,常量3.14159265是double类型, 常量3.14159265F就是float类型,常量3.14159265L就是long double类型。

 

6.符号常量

定义符号常量的格式为:#define 符号常量标识符值

符号常量的值一经定义,不允许改变。符号常量的定义属于编译预处理指令,通常放在主函数外的程序开始处。符号常量的实质是正式编译前预处理时的替换。

 

 


原文地址:https://blog.csdn.net/2401_87363162/article/details/143086106

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!