iOS study Day8- 宏

本文介绍了宏定义在编程中的应用,包括计算最小值、最大值、字符类型判断及绝对值计算等。通过实例展示了如何使用宏定义简化代码并提高效率。

//1、定义一个名为MIN2的宏,它给出两个值中的较小值。然后编写一个程序来测试这个宏定义。

//2、定义一个名为MAX3的宏,它给出三个值的最大值,然后编写一个程序来测试这个宏定义。

//3、编写一个名为IS_UPPER_CASE的宏,作用是如果字符是大写字母就给出非零值(可以尝试调用系统的Cocoa的过滤器NSPredicate)。

//4、编写一个名为IS_ALPHABETIC的宏,作用是如果一个字符是字母就给出非零值。使用IS_LOWER_CASE宏(自己实现)和练习3中的IS_UPPER_CASE宏。(宏调宏)

//5、编写一个名为ABSOLUTE_VALUE的宏,其作用是计算参数的绝对值。

//(可以尝试调用系统的求绝对值方法)

//1、定义一个名为MIN2的宏,它给出两个值中的较小值。然后编写一个程序来测试这个宏定义。
//2、定义一个名为MAX3的宏,它给出三个值的最大值,然后编写一个程序来测试这个宏定义。
//3、编写一个名为IS_UPPER_CASE的宏,作用是如果字符是大写字母就给出非零值(可以尝试调用系统的Cocoa的过滤器NSPredicate)。
//4、编写一个名为IS_ALPHABETIC的宏,作用是如果一个字符是字母就给出非零值。使用IS_LOWER_CASE宏(自己实现)和练习3中的IS_UPPER_CASE宏。(宏调宏)
//5、编写一个名为ABSOLUTE_VALUE的宏,其作用是计算参数的绝对值。
//(可以尝试调用系统的求绝对值方法)

#import <Foundation/Foundation.h>
#define MIN2(a,b) (a<b)?a:b
#define MAX2(a,b) (a>b)?a:b
#define MAX3(a,b,c) MAX2(MAX2(a,b),c)
#define IS_UPPER_CASE(canshu) [[NSPredicate predicateWithFormat:@"SELF MATCHES '[A-Z]'"] evaluateWithObject:canshu]
#define IS_LOWER_CASE(canshu) [[NSPredicate predicateWithFormat:@"SELF MATCHES '[a-z]'"] evaluateWithObject:canshu]
#define IS_ALPHABETIC(canshu) IS_UPPER_CASE(canshu)?1: (IS_LOWER_CASE(canshu) ? 1 : 0)
#define ABSOLUTE_VALUE(canshu) NSLog(@"%d",abs(canshu))


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

    @autoreleasepool {
        //1、定义一个名为MIN2的宏,它给出两个值中的较小值。然后编写一个程序来测试这个宏定义。
        NSLog(@"%d", MIN2(3, 6));
        
        //2、定义一个名为MAX3的宏,它给出三个值的最大值,然后编写一个程序来测试这个宏定义。
        NSLog(@"%d", MAX3(3, 7, 6));
        
        //3、编写一个名为IS_UPPER_CASE的宏,作用是如果字符是大写字母就给出非零值(可以尝试调用系统的Cocoa的过滤器NSPredicate)。
        NSString *astring = @"A";
        if(IS_UPPER_CASE(astring))
            NSLog(@"'astring' is an upper case.IS_UPPER_CASE = %d",IS_UPPER_CASE(astring));
        
        //4、编写一个名为IS_ALPHABETIC的宏,作用是如果一个字符是字母就给出非零值。使用IS_LOWER_CASE宏(自己实现)和练习3中的IS_UPPER_CASE宏。(宏调宏)
        if(IS_ALPHABETIC(astring))
            NSLog(@"'astring' is an alphabetic.");
        
        //5、编写一个名为ABSOLUTE_VALUE的宏,其作用是计算参数的绝对值。
        ABSOLUTE_VALUE(-65);
        
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值