5-3编程练习的声明部分问题

来源:5-3 编程练习

Lyle_Ng

2017-11-26 23:04:07

#import <Foundation/Foundation.h>
// 在这进行宏定义


#define square(a) a*a
#define LyleLog(x) NSLog(@"%d的平方:%d",x,square(x)) ;


int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        LyleLog(10) ;
        
        
        
    // 调用宏
    }
    return 0;
}


这是我根据参考答案写的答案,有个问题是,声明打印的时候,为什么NSLolg后面的括号中会有三个东西?平时都是放两个的?

@"%d的平方:%d"、x、square(x)

因为最后数出来的时候是两个东西嘛

谢谢老师解答。




写回答

3回答

宝慕林7387534

2018-07-28

宝慕林7387534

#import <Foundation/Foundation.h>

// 在这进行宏定义
#define square(a) a*a
#define MYLog(a) NSLog(@"%d的平方:%d",a,square(a));
int main(int argc, const char * argv[]) {
    @autoreleasepool {
       
    // 调用宏
       MYLog(10);
    }
    return 0;
}


0

宝慕林7387534

2018-07-28

#import <Foundation/Foundation.h>

// 在这进行宏定义
#define square(a) a*a
#define MYLog(a) NSLog(@"%d的平方:%d",a,square(a));
int main(int argc, const char * argv[]) {
    @autoreleasepool {
       
    // 调用宏
       MYLog(10);
    }
    return 0;
}


0

Tender10

2017-11-27

是的呢,因为最后输出的时候,你要输出两个元素啊,一个是x,一个是square(x),所以前面就需要两个字符来匹配,如果是三个就需要三个字符来匹配哦。

0

0 学习 · 1878 问题

查看课程