C语言-常量(宏定义、const、枚举)

一、什么是常量

程序运行时,其值不能改变的量,即为常量

  常量有以下几类:

  1. 字面常量(就是直接写出的数字,例如3.14
  2. #define定义的标识符常量
  3. const修饰的常变量
  4. 枚举常量

二、定义常量

1.使用宏定义

Ⅰ.什么是宏定义

  在文件开头用 #define 来定义常量,也叫作“宏定义”。
  宏定义,就是用一个标识符来表示一个常量值,如果在后面的代码中出现了该标识符,那么编译时就全部替换成指定的常量值。即用宏体替换所有宏名,简称宏替换

Ⅱ.定义格式

定义格式:#define 符号常量名 常量值

  • 符号常量名,称为宏名,属于标识符,一般定义时用大写字母表示。
  • 常量值,称为宏体,可以是数值常量,也可以是字符常量。

    宏名用大写字母表示,与变量作区别(软性要求)

宏定义不是 C 语句,后面不能有分号

Ⅲ.实例

#include <stdio.h>

#define ZERO 0   //#define的标识符常量

int main() {
	printf("zero = %d\n", ZERO);
    return 0;
}

  跟#include一样,“#”开头的语句都是“预处理语句”,在编译之前,预处理器会查找程序中所有的“ZERO”,并把它替换成0,这个过程称为预编译处理。然后将预处理的结果和源程序一起再进行编译处理得到目标代码 (OBJ文件)

在这里插入图片描述

2.使用const限定符

  C99中新的声明方式,这种方式跟定义一个变量是一样的,只需要在变量的数据类型前再加上一个const关键字,这被称为“限定符”。

格式:const 数据类型 常量名 = 常量值;

  例如:

const float PI = 3.14f; // 一旦创建就不能改变,所以必须初始化。

跟使用 #define定义宏常量相比,const定义的常量有详细的数据类型,而且会在编译阶段进行安全检查,在运行时才完成替换,所以会更加安全和方便。

3.使用枚举

  枚举是 C 语言中的一种基本数据类型,用于定义一组具有离散值的常量,它可以让数据更简洁,更易读。 枚举类型通常用于为程序中的一组相关的常量取名字,以便于程序的可读性和维护性。

#include <stdio.h>

//使用enum定义枚举类
enum Sex{
    //括号中的MALE,FEMALE,SECRET是枚举常量,因为我们没有赋值,默认是从0开始,依次向下递增1的
	MALE, // 0
	FEMALE, // 1
	SECRET // 2
};

三、练习

这段代码的打印结果为________。

#include <stdio.h>
#define  CANBERRA(x,y)  ((x-y)/(x+y))

int main() {
    printf("%lf", CANBERRA(1.0+2.0,0.0+2.0));
    return 0;
}

答案:1.0

宏替换后为(1.0+2.0-0.0+2.0)/(1.0+2.0+0+2.0)=1.0;

  • 30
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值