#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("