求一个类型的最大值和最小值

#include <stdio.h>
#include <limits.h>


#define MYMAX(T)  \
    (- ( ( 1<< ( sizeof ( T ) * 8 - 1 ) ) + 1))
#define MYMIN(T) \
    (1 << ( sizeof ( T ) * 8 - 1 ))

int main(int argc, char const *argv[])
{

    printf("%d\n", - ( ( 1<< ( sizeof ( int ) * 8 - 1 ) ) + 1));
    printf("%d\n", INT_MAX);
    printf("%d\n", 1 << ( sizeof ( int ) * 8 - 1 ));
    printf("%d\n", INT_MIN);

    printf("%d\n", MYMAX(int));
    printf("%lld\n", MYMAX(long long ));
    printf("%d\n", MYMIN(int));

    return 0;
}

 

posted @ 2017-11-27 20:53  青我所青  阅读(255)  评论(0)    收藏  举报