开发者社区 问答 正文

“#define没有类型检查”,其中类型检查是什么意思?

1,如题,“#define没有类型检查”,其中类型检查是什么意思

展开
收起
杨冬芳 2016-05-30 14:14:00 3288 分享 版权
1 条回答
写回答
取消 提交回答
  • IT从业

    define是预编译阶段进行简单替换的,并不检查类型,只是在替换后,如果有编译问题会警告或错误。

    而static const这种是会声明类型的,比如:

    staic NSString * const kName = @"name";

    所以如果使用kName去赋值给一个数组,自然会报警告,但是#define在某些时候并不能发现这种问题。

    2019-07-17 19:20:31
    赞同 展开评论
问答地址: