首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

Define与Const的使用(1)

Define与Const的使用(1)

文章起因:
     
     
    由于本人在项目中一直不清楚什么时候使用define  定义常量,什么时候使用宏,来定
    义一些字符串啊,数字啊这些变量,所以就有了这篇文章的所在

    首先两者的定义与实现

一.define(宏定义)
#define语法称之为预处理命令。#define声明主要用于将常量(或字符串)赋予有意义的名字,比如当你在编写一个日历程序时,可以定义:

#define MONTHS_PER_YEAR 12

    Tips:
         1.通常情况下,习惯将预处理的常量名全大写,单词之间用下划线隔开
    (与正常变量区分)。
         2.如果是定义常量,若这个常量的适用范围局限于.m,那么习惯性在常量名前
    加k,若常量在类之外可见,则通常以类名为前缀

预处理代码起的作用实际上相当于在编译之前!!!
预处理代码起的作用实际上相当于在编译之前!!!
预处理代码起的作用实际上相当于在编译之前!!!
重要事情说三遍。也就是说宏使用过多会增加编译时间,

    而一个常量在栈中开辟空间是很高效的。

在整个代码中进行了一次“搜索、替换”功能.通常情况下不管是声名字符串还是函数其作用主要有两个:
个人认为使用宏有一下好处:

1.增强代码可读性
2.方便全局使用和修改一些方法和参数
3.增强复用性

(以上为个人总结,标准答案见第二大标题:两者的区别 中的那篇引文博客)

二.const(定义常量)
const 如果是声明常量,仅仅是想要在.m文件中使用,那么一定要同时使用static 和const来声明,若不加系统在编译时会自动为它加一个extern (外部符号),此时,若另一个编译单元出现了同名变量就会报错,并且很难查找错误

只能在警告区找到



这是OC程序员最不愿意看到的错误。。。也是很难查找的错误,跟修改已经创建的类的文件名的错误差不多。
返回列表