C 宏定义

#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);
}

原文地址:https://www.cnblogs.com/liming19680104/p/10583927.html