本文介绍: 编译器无需查看带有extern关键字变量定义,即允许代码使用常量。此外,预处理过程会把碰到的所有ANIMATION——DURATION都替换成0.3,这样的话,假设指令声明某个头文件中,那么所有引入这个文件代码,都会替换ANIMATION——DURATION。实际上,如果一个变量声明即位const,又为static,那么编译器根本不会创建符号,而是像#define预处理指令一样,把遇到所有变量替换为常值。请注意用此方式定义的,常量包含类型信息,其好处是清楚的描述了常量的含义。

4.多用类型常量,少用#define处理指令

编写代码时经常要定义常量,例如,要写一个UI视图类,此视图显示出来之后就播放动画然后消失。你可能想把播放动画时间提取为常量。掌握了Objective-C与其C语言基础的人,也许会用这种方法来做:

#define ANIMATION——DURATION 0.3

这样定义出来的常量没有类型信息duration这个词看上去应该时间有关但是代码中又未明确指出。

此外,预处理过程会把碰到的所有ANIMATION——DURATION都替换成0.3,这样的话,假设此指令声明某个文件中,那么所有引入了这个头文件代码,都会替换ANIMATION——DURATION。

想要解决问题可以这样写:

static const NSTimeInterval kAnimationDuration = 0.3

注意用此方式定义的,常量包含类型信息,其好处是清楚的描述了常量的含义。

因为符号要放倒全局符号表里,首页命名常量时需谨慎。

关于#include与#import

区别之处

关于#import< >与#import” “

区别在于:

参考博客

原文地址:https://blog.csdn.net/zdsey/article/details/128536518

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_48308.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注