转自http://4729469.blog.163.com/blog/static/389712122012419114141283/
一、代码模板建立
代码模板有利于快速输入代码,提高编程效率;有利于快速完成程序的整体统一风格。在IAR中可以Code Templates来显示代码模板的建立与应用。
以下是Step by Step:
1. 打开模板库
菜单路径:Edit -> Code Templates -> Edit Templates
<left>
![](http://cache.ourdev.cn/bbs_upload782111/files_42/ourdev_657044MEEPZ7.jpg)
菜单路径1 (原文件名:7.jpg) </left>
执行该菜单打开以下文件
<left>
![](http://cache.ourdev.cn/bbs_upload782111/files_42/ourdev_657045YF5PEZ.jpg)
模板库 (原文件名:8.jpg) </left>
定义代码模板的语法是:模板<template name> ,<field> [=默认值] <field> ... ...
模板组成元素:模板名称,参数名称和参数的默认值,参数默认值可以省略
格式符号:(>)、引号(””)、逗号(,)、(&)、空格符。
? 模板名称定义时使用(>)格式符组织多层级模板子菜单结构。
? 模板名称,参数名称和参数的默认值在引号(“”)内定义,使用单字母(无空格符隔开)则可以省略引号,即引号(””)只有在模板名称,参数名称和参数的默认值包含空格符时候才必须用
? 参数与模板名称,各个参数之间以逗号(,)区分定义。
? 使用(&)定义其后第1个ASCII字符为快捷键<letter>,可以定义在模板名称,参数名称的任意位置。
在模板名称中同一层级菜单应避免出现重复快捷键,在模板菜单选择界面下直接使用<letter>访问各个菜单。例如模板定义:#TEMPLATE &Function>&Function,….. 按(F)(F)即可。
<left>
![](http://cache.ourdev.cn/bbs_upload782111/files_42/ourdev_657044MEEPZ7.jpg)
菜单路径1 (原文件名:7.jpg) </left>
参数名称定义,也应避免出现重复快捷键,在模板参数输入界面下使用Alt + <letter>在各个参数间跳转。例如模板定义:#TEMPLATE &Function>&Function,"Function &name","Input ¶meter","Out ¶meter",&Description=--,&Created="$DATE$, by Xie Guangye"
在模板参数输入界面下,可以使用ALT+D访问,将跳转到Description参数设置点。
<left>
![](http://cache.ourdev.cn/bbs_upload782111/files_42/ourdev_657046UOH8AJ.jpg)
模板使用界面 (原文件名:9.jpg) </left>
? 给参数设定默认值时候我们可以使用等号(=)格式符。参数默认值可以包含非ASCII字符
2. 自定义一个函数模板。
如下:
#TEMPLATE &Function>&Function,"Function &name","Input ¶meter","Out ¶meter",&Description=--,&Created="$DATE$, by Xie Guangye"
/***********************************************************************************************************
* 函数名称: %1()
* 输入参数: %2
* 输出参数: %3
*
* 功 能: %4
*
* 作 者: %5
************************************************************************************************************/
void %1(void)
{
%c
}
该模板使用界面:
<left>
![](http://cache.ourdev.cn/bbs_upload782111/files_42/ourdev_657046UOH8AJ.jpg)
模板使用界面 (原文件名:9.jpg) </left>
首先为代码模板的语法部分,其次是模板的内容。
其中#TEMPLATE为模板定义字;&Function>&Function模板在使用时候显示于菜单中的各层级名称;其后为各个参数项的定义,以逗号(,)区分。
对比模板内容和使用界面我们可以看到,各个参数以(&)定义,在模板内容中各个参数以%1开始依次到%n表示,%c为插入函数时候光标位置。
3. 模板的使用
在代码文件中,鼠标选择在需要插入代码模板的位置。
菜单路径:Edit -> Code Templates -> Insert Templates
<left>
![](http://cache.ourdev.cn/bbs_upload782111/files_42/ourdev_657044MEEPZ7.jpg)
菜单路径1 (原文件名:7.jpg) </left>
或者使用快捷键CTRL+SHIFT+SPACE
在使用界面中输入自己设置的参数
<left>
![](http://cache.ourdev.cn/bbs_upload782111/files_42/ourdev_657046UOH8AJ.jpg)
模板使用界面 (原文件名:9.jpg) </left>
插入的模板化的代码为:
/*******************************************************************************
* 函数名称: Uart_Int()
* 输入参数: 无
* 输出参数: 无
*
* 功 能: 串口初始化
*
* 作 者: 2011-7-12, by Xie Guangye
********************************************************************************/
void Uart_Int(void)
{
}
4. 同理,我们可以建立switch模板,MAIN函数模板,中断函数模板,文件注释模板等等。
参考来自IAR官方网页的信息:
http://www.iar.com/website1/1.0.1.0/2518/1/
二、代码编辑快捷键
除了上文提高CTRL+SHIFT+SPACE快捷键,从OUROAVR中找到CC2550介绍的几个好用的在快捷键,这些快捷键的优势在于能快速的处理多行代码。
CTRL+B Match Brackets 括号匹配 片选择代码
CTRL+T Auto Indent 自动缩进,格式化选中的代码,格式在TOOLS->OPTIONS->EDITER->Auto Indent->CONFIGS
CTRL+K Block Comment 快注释,屏蔽选中的代码
CTRL+SHIFT+K Block Uncomment 取消快注释,取消屏蔽选中的代码