扫码关注官方订阅号
1,如题,“#define没有类型检查”,其中类型检查是什么意思?
业精于勤,荒于嬉;行成于思,毁于随。
#define是预编译阶段进行简单替换的,并不检查类型,只是在替换后,如果有编译问题会警告或错误。而static const这种是会声明类型的,比如:
#define
staic NSString * const kName = @"name";
所以如果使用kName去赋值给一个数组,自然会报警告,但是#define在某些时候并不能发现这种问题。
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
#define是预编译阶段进行简单替换的,并不检查类型,只是在替换后,如果有编译问题会警告或错误。而static const这种是会声明类型的,比如:
所以如果使用kName去赋值给一个数组,自然会报警告,但是#define在某些时候并不能发现这种问题。