#define MAX 80什么意思?

来源:百度知道 编辑:UC知道 时间:2024/06/17 23:33:30

预处理指令 #define 和符号常量

来源:蚂蚁的 C/C++ 标准编程 作者:antigloss 等级:精品
发布于2006-04-29 14:48 被读8939次 【字体:大 中 小】

Antigloss 最后更新于 2006-12-29

1. #define

首先请看以下程序:

#include <stdio.h>

#define PERCENT 0.1

int main(void)
{
int income = 4000;
printf("%.2f", PERCENT * income);

return 0;
}

这个程序输出 400.00 。这是因为 #define PERCENT 0.1 定义了一个符号名(symbolic name),这个符号名就是 PERCENT,它的值为 0.1。当程序被编译时,程序中所有在 #define PERCENT 0.1 后面的 PERCENT 都会被替换成 0.1。注意,必须完全匹配才会被替换,PERCENTS(如果有的话)绝对不会被替换成 0.1S !字符串常量也不会被替换。"PERCENT"(如果有的话)绝对不会被替换成 "0.1" !这种替换就是所谓的编译时替换。从源代码到可执行文件要经历三个阶段:预处理、编译,链接。编译时替换是在预处理阶段,由预处理器(Preprocessor)完成的。上述程序预处理后变成:

// 这里被替换成头文件 stdio.h 中的内容

int main(void)
{
int income = 4000;
printf("