巧用 #define与 #ifdef,实现灵活数值比较

题目描述

#if #ifdef和#ifndef的综合应用。

源代码

#include
#define MAX
#define MAXIMUM(x,y)(x>y)?x:y
#define MINIMUM(x,y) (x>y)?y:x
int main()
{
    int a=10,b=20;
#ifdef MAX
    printf("更大的数字是 %d\n",MAXIMUM(a,b));
#else
    printf("更小的数字是 %d\n",MINIMUM(a,b));
#endif
#ifndef MIN
    printf("更小的数字是 %d\n",MINIMUM(a,b));
#else
    printf("更大的数字是 %d\n",MAXIMUM(a,b));
#endif
#undef MAX
#ifdef MAX
    printf("更大的数字是 %d\n",MAXIMUM(a,b));
#else
    printf("更小的数字是 %d\n",MINIMUM(a,b));
#endif
#define MIN
#ifndef MIN
    printf("更小的数字是 %d\n",MINIMUM(a,b));
#else
    printf("更大的数字是 %d\n",MAXIMUM(a,b));
#endif
    return 0;
}

借助 #define 宏定义自定义 MAXIMUM 、 MINIMUM 用于数值比较,再通过 #ifdef (判断宏已定义)、 #ifndef (判断宏未定义 )、 #undef (取消宏定义 )构成条件编译逻辑,动态决定代码执行分支。

输出结果

更大的数字是 20
更小的数字是 10
更小的数字是 10
更大的数字是 20

你可能感兴趣的:(C语言刷题记录,算法,c语言)