宏的简单应用

http://blog.sina.com.cn/s/blog_4ca9ceef0101isv5.html

//没用#define前是这样的,每个ViewController都要写这么一段重复的代码 写多了就烦了

/***********************处理前*****************************/

UILabel *titleLabel = [[ UILabel alloc ]  init ];

titleLabel. backgroundColor = [ UIColor clearColor ];

titleLabel. textColor = [ UIColor redColor ];

titleLabel. text =  @"导航栏标题" ;

titleLabel. font =[ UIFont fontWithName : nil size : 17.0f ];

[titleLabel  sizeToFit ];

self . navigationItem . titleView  = titleLabel;

//在全局配置文件(config.h)中定义了一个宏

#define SET_NAV_TITLE(_TITLE) ({\

UILabel *titleLabel = [[UILabel alloc] init];\

titleLabel.backgroundColor  = [UIColor clearColor];\

titleLabel.textColor        = [UIColor redColor];\

titleLabel.text             = _TITLE;\

titleLabel.font=[UIFont fontWithName:nil size: 17.0f ];\

[titleLabel sizeToFit];\

self.navigationItem.titleView = titleLabel;\

})

//定义了宏后就这么一句了

/***********************处理后*****************************/

SET_NAV_TITLE ( @"导航栏标题" );

时间: 2024-10-02 08:25:46

宏的简单应用的相关文章

jinja2 宏的简单使用总结(macro)

Table of Contents 1. 简介 2. 用法 3. 参数和变量 4. 注意事项 4.1. macro的变量只能为如下三种: 4.2. 和block的关系: 5. 参考文档 1 简介 jinja2是python的模板引擎, 在写python web使用的过程中,发现macro可以节省大量的代码.所以做了一个小的总结. 用法基本上都是网上的文章. 自己主要是写了注意事项,也算是心得体会. 2 用法 宏类似常规编程语言中的函数.它们用于把常用行为作为可重用的函数,取代 手动重复的工作.

宏&一个简单的宏病毒示例

基于VisualBasicForApplications 其一:录制宏 在word,视图,宏,录制宏选项. 操作比较简单,不再赘述. (注意根据需求选择normal还是当前文档) 例如:录制宏:快捷键设为空格,将某些字段设为隐藏/空白.可以隐藏信息.(虽然很简陋) 其二:编辑宏 视图 宏 查看宏 创建 (注意根据需求选择normal还是当前文档) CDO组件发送邮件. 用了ActiveDocument.FullName获取当前文档的path. 不知道为什么Dim mail As New CDO.

宏与内联函数

第一部分:宏 为什么要使用宏呢? 因为函数的调用必须要将程序执行的顺序转移到函数所存放在内存中的某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地方.这种转移操作要求在转去执行前要保存现场并记忆执行的地址,转回后要恢复现场,并按原来保存地址继续执行.因此,函数调用要有一定的时间和空间方面的开销,于是将影响其效率.而宏只是在预处理的地方把代码展开,不需要额外的空间和时间方面的开销,所以调用一个宏比调用一个函数更有效率. 但是宏也有很多的不尽人意的地方. 在C语言中: 1.宏容易出现一

宏的副作用

#include <stdio.h>#define min(a,b) ((a)<=(b)?(a):(b)) int main (int argc, char **argv){    char *p = "abcdefgh";    printf("%c\n",min(*p++,'c'));  //宏被扩展为 ( *p++ <= c ? *p++:c )    return 0;} 输出 b 我们可以看到,宏只是简单的替换,这个例子如何避免副作

linux C宏定义 转

写好C语言,漂亮的宏定义很重要,使用宏定义可以防止出错,提高可移植性,可读性,方便性等等.下面列举一些成熟软件中常用得宏定义...... 1,防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植. typedef  unsigned char      boolean;     /* Boolean value type. */ typed

【C语言总结】宏定义,预处理

宏定义 简单宏 格式:#define 标示符 替换列表 #define N 100 int a[N];//N就是100 带参数的宏 格式:#define 标示符(x1, x2, x3,--xn) 替换列表 #define MAX(x, y) ((x) > (y) ? (x) : (y)) 注意:程序编译的时候会把大写的标示符替换成原来的表达式,所以编译时候程序会增大. 优点或者缺点 优点 ①程序可能会稍微快些 ②宏会更通用 缺点 ①编译后代码通常会变大 ②无法用指针指向一个宏 ③宏可能会不止一次

c语言的宏的使用方法(转自他人)

C语言宏定义技巧 周四, 2008年 10月 09日 14:10 高级管理员 C/C++编程 - C语言基础   1,防止一个头文件被重复包含 #ifndef COMDEF_H #define COMDEF_H //头文件内容 #endif 2,重新定义一些类型,防止由于各种平台和编译器的不同,而产生的类型字节数差异,方便移植. typedef  unsigned char      boolean;     /* Boolean value type. */typedef  unsigned

C语言之宏

所谓的宏就是一种预处理命令,什么是与处理呢?即在编译过程之前先对程序代码做出的必要的转换处理.宏有两个作用: 1.当遇到需要将程序某个特定的数量在程序中出现的所有实例通通加以修改时,程序只需改动一处即可. 2.大多数C语言函数调用时都会带来重大的系统开销,而宏看上去像一个函数却没有函数调用的开销. 宏虽然有优点,但是也有其自身的缺陷. 首先得明确宏只是简单地替换.例如 #define CHAR char* Int main() { Char a=’A’; CHAR  p1,p2; P1=&a;

内联函数与宏定义的区别

内联函数与宏的区别: 内联函数与普通函数相比,可以加快程序的运行速度,因为不需要中断调用,在编译的时候内联函数可以直接镶嵌到目标代码中.而宏只是简单的字符替换. 内联函数要做参数类型检查,这是内联函数跟宏相比的优势. inline一般只用于如下情况: (1)一个函数不断被重复调用 (2)函数只有简单的几行,且不包含for.while.switch等语句. 一般而言,写小程序没有必要使用inline,但是如果要完成一个工程项目,当一个简单函数被调用多次时,应考虑使用inline