0%

C语言 符号常量

C语言的符号常量

​ 前面已经看完了变量,正常情况下就要来聊聊常量了,从字面意义上看,变量与常量的概念比较容易理解:

  • 变量:就是能改变的量
  • 常量:就是不能改变的量

对于变量而言用的最多的也是见得做多的估计就是int i;这个语句的,而常量在什么时候用呢?

比如银行的利率,蔬菜的价格,电路的增益,线缆的损耗等等,可能会更改的值,更改不是原因,主要是在使用的时候一定要是多处使用到了,这样才能发挥它的作用。

先说一下符号变量的一般用法,如下所示:

1
#define 变量名 变量值

来个不用代码片段的,比如白菜的价格是2.5元一斤,张三、李四、王五,每个人来个三四五斤,需要多少钱,代码如下:

1
2
3
float zhangsan_price = 2.5 * 3;
float lisi_prince = 2.5 * 4;
float wangwu_prince = 2.5 * 5;

不错,代码看着简介明了,忽然章丘遇到天灾了,白菜统一涨价到5.5元一斤,OK,代码修改如下所示:

1
2
3
float zhangsan_price = 5.5 * 3;
float lisi_prince = 5.5 * 4;
float wangwu_prince = 5.5 * 5;

真是中国好邻居呀,干嘛都一起,这样也好操作,但是如果要统计一个村300多户都买几斤大白菜,那么需要修改的就是300多处,那样岂不是超级崩溃,OK,这时就需要符号常量了,我们略微修改,增加符号变量:

1
2
3
4
5
#define PRICE 2.5

float zhangsan_price = PRICE * 3;
float lisi_prince = PRICE * 4;
float wangwu_prince = PRICE * 5;

涨价了怎么办呢,只需要需改第一句,把2.5更改为5.5即可,简单快捷粗暴:

1
2
3
4
5
#define PRICE 5.5

float zhangsan_price = PRICE * 3;
float lisi_prince = PRICE * 4;
float wangwu_prince = PRICE * 5;

300多户,丝毫不惧,来个百八十万照旧一次修改,全部收益。

恩,符号变量的效果就是如此了,你是否已经了然于胸。

来个小例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/*beginner/define/define1.c*/
#include <stdio.h>

#define BONUS 0.1

int main()
{
int salary;

salary = 30;

printf("The salary this year is %.2fk\n", salary * (1 + BONUS));

return 0;
}

每年浮动10%应该是常态,希望各位老板仁慈,对待优秀员工,把整个符号常量设大一点,哈哈,不用太多,0.5就可以了,😁。

相应地Makefile如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
#beginner/define/Makefile

ALL : define1

define1 : define1.c
gcc -o define1 define1.c


.PHONY : clean

clean:
rm -f define1

输入make,然后执行各个程序输出如下:

1
2
$  ./define1
The salary this year is 33.00k
处无为之事,行不言之教;作而弗始,生而弗有,为而弗恃,功成不居!

欢迎关注我的其它发布渠道