当前位置:编程学习 > C/C++ >>

C语言“全能比较函数”新鲜出炉(第二版),任意数据类型

第一版:
[cpp] 
#include <stdio.h> 
 
// 下面就是“全能比较函数”,a>b返回整数,a<b返回负数,a==b返回0  
#define COMPARE(TYPE,a,b)   ((TYPE)a-(TYPE)b) 
 
int main(int argc, char *argv[]) 

    double a=1, b=1.5, c; 
    int x=10, y=1, z; 
    char m='m', n='n', k; 
     
    c = COMPARE(double, a, b); 
    printf("%lf \n", c); 
     
    z = COMPARE(int, x, y); 
    printf("%d \n", z);  
     
    k = COMPARE(char, m, n); 
    printf("%d \n", k);  
     
    return 0; 

返回的数据类型不统一,跟输入的数据类型有关;能不能统一返回int类型的结果呢?


第二版:比较结果为int类型

[cpp] 
#include <stdio.h> 
 
// 下面就是“全能比较函数”,a>b返回整数,a<b返回负数,a==b返回0  
#define COMPARE(TYPE,a,b)   (((TYPE)a-(TYPE)b)==0?0:(((TYPE)a-(TYPE)b)>0?1:-1)) 
 
int main(int argc, char *argv[]) 

    int result; 
    double a=1, b=1.5; 
    int x=10, y=1; 
    char m='m', n='n'; 
    float f1=6.02, f2=6.0200002; 
     
    result = COMPARE(double, a, b); 
    printf("%d \n", result); 
     
    result = COMPARE(int, x, y); 
    printf("%d \n", result);     
     
    result = COMPARE(char, m, n); 
    printf("%d \n", result); 
     
    result = COMPARE(float, f1, f2); 
    printf("%d \n", result);     
     
    return 0; 

补充:软件开发 , C语言 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,