C语言中的常量和预处理器

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第8天,点击查看活动详情

常量

如果你想求圆的周长,(假设pi=3.14159)输入直径就可以求周长了:

circumference = 3.14159 * diameter

当我们使用符号常量pi表达:

circumference = pi * diameter

使用符号常量会更好一点,根据上面那两个对比,表达的含义会更容易让人看懂。当我们多处使用一个常量时,需要改动它的值。我们如果使用符号常量,只需要更改符号常量的定义,不需要查找常量的地方一一修改。那我们如何创建一个符号常量呢?

int cakes; cakes=45;

我们提供符号名来创建一个符号常量。但是cakes是变量,有时候可能会改变它。所以我们可以用另一种办法:C预处理器。

C预处理器

预处理器可以用来定义常量,我们需要在程序前面添加一行,例如:

#define CAKES 45

编译时,程序中所有的cakes替换成45.这一过程被称为编译时替换。在运行程序时,程序中所有替换均完成,这种也叫明示常量。

它的格式:

#define 变量名 值

注意:

变量名建议是大写字母,方便一眼看出时符号常量。虽然写小写也会正常运行,但是不是一个好的编程习惯。特别是新手,更要养成好的编写习惯。

符号常量的命名规则与变量相同,要求是大小写字母,数字,下划线。数字不可以成为首字符。

举个简单例子

#include <stdio.h>
#define PI 3.14159
int main(){
    float area,circum,radius;
    printf("What is the radius of your pizza?\n");
    scanf("%f",&radius);
    area=PI*radius*radius;
    circum=2.0*PI*radius;
    printf("Your basic pizza parameter are as follow:\n");
    printf("circumference = %1.2f, area = %1.2f\n",circum,area);
    return 0;
}
复制代码

运行结果

Snipaste_2022-08-05_20-55-49.png

#define其他

还可以定义字符和字符串常量。前者用单引号,后者用双引号,例如:

#define PHONE '\a'

#define PIZZA "It's very delicious!"

注意:符号这里不要写错!

演示一个错误案例

#define CAKES =98

这是错误的!如果继续这样写,会把=带进去。当它带入语句是这样的

area=apple*CAKES;

area=apple* =98;

这样写是错误的!大家一定要注意!

猜你喜欢

转载自juejin.im/post/7128377641970696199
今日推荐