#include <stdio.h> #define PI 3.14159 //宏---文本替换 //在C99之前没有const,只能用define #define FORMAT "%f " //编译时会用"%f "替换FORMAT //名字必须是一个单词,值可以是各种东西 //完全的文本替换 int main () { //预定义的宏 printf("%d ",__LINE__) ;//当前行号 printf("%s ",__FILE__) ;//当前源文件的名称,用字符串常量表示 //D:CSShello.c printf("%s ",__DATE__) ;//当前源文件编辑日期 //Jul 25 2020 printf("%s ",__TIME__) ;//当前源文件的最新编译吋间,用“hh:mm:ss”形式的宁符串常量表示 printf("%d ",__STDC_VERSION__) ;//如果当前编译器符合C89,那么它被定义为199409;如果符合C99,那么它被定义为199901:在其他情况下,该宏为末定义 return(0); }
#include <stdio.h> #define cube(x) ((x)*(x)*(x)) //带参数的宏 //用 ((x)*(x)*(x))替换 cube(x) //防止出错:都用() //执行效率比函数高 #define MIN(a,b) ((a)>(b)?(b):(a)) //多参数的宏 int main () { printf("%d ",cube(3)); return(0); }