关于宏定义

关于宏定义

#define square(x)   x*x

#define print(x,y)    NSLog(@"%d的平方:%d",x,y)

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

    @autoreleasepool {

        

    // 调用宏

        int a=square(10);

        print(10,a);

    }

    return 0;

}

 当NSLog(@"%d的平方:%d",x,y)改为NSLog(@"%d的平方:%@",x,y)时,输出为什么会是2呢?

难道是%@表示使用的字符串或参数个数?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

您好,改成%@应该程序直接就报错了吧!因为打印的类型都不匹配啦!

  • slurpasser 提问者 #1
    是用慕课编的,没有报错
    2017-01-27 07:53:13
  • Tender10 回复 提问者 slurpasser #2
    在线编译有可能反应会慢一点,因为数据类型不匹配,系统肯定会报错的,你可以再试试验证一下。
    2017-01-27 09:31:38
  • slurpasser 提问者 #3
    非常感谢!
    2017-01-28 08:07:46
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
iOS入门:基础语法与常用控件
  • 参与学习       1337    人
  • 提交作业       712    份
  • 解答问题       1878    个

很多人都在疑问没有基础该怎么学习iOS开发?不用担心,本路径采用游戏关卡式的教学模式,并且以经典OC与最新Swift双重结合的教学内容,帮助大家快速掌握两种iOS开发语言基础,去掉“零”标签。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师