c语言如何定义常量?

C&C++ / 1186人浏览 / 0人评论

c语言如何定义常量?

c语言如何定义常量?

在C语言中,用#define定义一个标识符来表示一个常量。这样定义的标识符不占内存,只是一个临时的符号,预编译后这个符号就不存在。

程序的预编译:预编译叫预处理,预编译非编译,是编译前的处理。是在正式编译之前由系统自动完成。

使用#define定义常量,有四部分,#define开头加空格,标识符名加空格,常量,表示定义完成,结尾没有分号。

define 标识符 常量; //注意, 结尾没有分号

定义常量都是以#号开头,和include一样,#开头的指令均为预处理指令。

在C语言程序中,#define定义又称宏定义,标识符为所定义的宏名,简称宏。

标识符的命名规则与变量的命名规则是一样的。

#define将声明的标识符定义为后面的常量。

定义后就可以在程序中直接使用标识符来表示这个常量。

是不是与定义变量类似?

变量:程序中变量是可变的。

常量:程序中如果定义,不可改变。

所以就是变量可以赋值,但常量不能赋值,因为已经定义好。

常量通常用来定义:数字、字符、字符串、表达式。

定义常量:就是先定义一个标识符,然后给标识符直接赋值。

那么在程序中就可以到处使用定义好的常量(这个常量是会被经常使用,而且是很多处都会被用到),通过标识符获取常量值使用。

这就是宏定义的理解,如果在程序逻辑中很多地方都要使用这个值,我们就把这个值定义成宏,当需要修改这个宏的值得时候,我们就只需要修改一个地方即可,这样使用到的地方就不会有影响,而且方面维护。

在程序执行前,宏定义的常量会在预编译过程中被替换,称之为宏替换、宏展开。处理完后才正式的编译。

所以C语言编译的过程有两个过程,就是先预编译,在正式编译。#include包含头文件,在正式编译前,会进行预编译,把需要包含的头文件包含进来,准备进行正式的编译处理。

宏定义#define通常写在函数外,同#include写在一起。

但是如果你非得写在函数里面也不会有语法的错误,#define的作用域为自#define定义起到源程序结束。

如果不适用了,可以使用#undef命令,格式:

undef 标识符

#undef很少使用,也需要了解。

常量标识符的定义通常与变量名区别开来,常量标识符全部用大写字母表示。

宏定义案例举例子

#include <stdio.h>
#include <stdlib.h>

#define STRINGS "HELLO WORLD!"
#define SUM  0
#define MAX_VALUE 500

int main()
{
    printf("Hello world!\n");
    printf("%s!\n", STRINGS);
    printf("%d!\n", SUM);
    printf("%d!\n", MAX_VALUE);
    return 0;
}
Hello world!
HELLO WORLD!!
0!
500!

Process returned 0 (0x0)   execution time : 0.017 s
Press any key to continue.

转载注明:

0 条评论

还没有人发表评论

发表评论 取消回复

记住我的信息,方便下次评论
有人回复时邮件通知我