some macros and extension C language of IAR C compiler
来源:互联网 发布:骨朵网络影视详情页 编辑:程序博客网 时间:2024/06/10 02:54
1. __no_init
__no_init SPP_RX_STRUCT rxData @ "PM0_XDATA";
@是指定地址,__no_init 是一个SEGMENT,是给LINKER用的,定义到不初始化的块中去。
@就是指定地址,这个应该没什么好说的了,大部分编译器都这么用。你应该理解这个吧。
你定义全局变量的时候比如int char; 即使你没有赋值给他,编译器还是会给他一个初始化值0,编译的时候编译器把他分配到初始化为零的那个SEGMENG中去了。编译器默认的有几个块,初始化为零的块,初始化不为零的块,和不初始化的块,你可以定义自己的块,如你的PM0_XDATA,这个就是你自己定义的一个块,那你的这个块是个什么属性呢,就是,__no_init 属性,有了这个属性,编译器只给你分配空间,不给你初始化。
@是指定地址,__no_init 是一个SEGMENT,是给LINKER用的,定义到不初始化的块中去。
@就是指定地址,这个应该没什么好说的了,大部分编译器都这么用。你应该理解这个吧。
你定义全局变量的时候比如int char; 即使你没有赋值给他,编译器还是会给他一个初始化值0,编译的时候编译器把他分配到初始化为零的那个SEGMENG中去了。编译器默认的有几个块,初始化为零的块,初始化不为零的块,和不初始化的块,你可以定义自己的块,如你的PM0_XDATA,这个就是你自己定义的一个块,那你的这个块是个什么属性呢,就是,__no_init 属性,有了这个属性,编译器只给你分配空间,不给你初始化。
2. __C_task
通常用在 main函数前: __C_task main(). C_task告诉编译器,函数入口不需要保护寄存器,节省堆栈用量。 因为操作系统任务一般都是一个无限循环,不会返回,所以可以加上C_task。 如果主函数main()不会返回,也可加上C_task
3. __root
__root 关键字保证没有使用的函数或者变量也能够包含在目标代码中.
定义存放在__flash 空间的数据在程序编译时会自动生成代码嵌入到flash代码中,对于程序没有使用也要求编译的数据(比如可以在代码中嵌入你的版本号,时间等)必须加关键字__root 限制。
转自: http://hi.baidu.com/eilianhell/blog/item/a1fa825c0e767aca9d820429.html
定义存放在__flash 空间的数据在程序编译时会自动生成代码嵌入到flash代码中,对于程序没有使用也要求编译的数据(比如可以在代码中嵌入你的版本号,时间等)必须加关键字__root 限制。
转自: http://hi.baidu.com/eilianhell/blog/item/a1fa825c0e767aca9d820429.html
- some macros and extension C language of IAR C compiler
- some macros and extension C language of IAR C compiler
- Pre-defined C/C++ Compiler Macros
- C++, macros, and job security
- C - Language of FatMouse
- C macros __LINE__, __FILE__ and __func__
- C macros __LINE__, __FILE__ and __func__
- C macros __LINE__, __FILE__ and __func__
- C macros __LINE__, __FILE__ and __func__
- asm and c language
- Some examples of BLAS and LAPACK calls from C++.
- Some important things about C language
- extern usage of C language
- The key of C Language
- some tips of flex compiler
- C's Predefined Macros
- Do-While and if-else statements in C/C++ macros
- 编译器预定义宏(Pre-defined C/C++ Compiler Macros)
- .NET(C#) 中使用 CsGL-OpenGL .NET
- centos 6.0安装rpmforge源
- 遗传算法入门
- 1.1 Broken Necklace
- 西安80坐标系
- some macros and extension C language of IAR C compiler
- linux 解压
- FlashCookie 不被浏览器清除的Cookie
- Javascript中最常用的61个经典技巧-我教你
- 话说二叉树和二叉排序树是这样子的...学习吧~
- 弹出窗口的基本属性设置
- Goodbye ZORAN
- 代码笔记——AS3圆
- 各种数据库连接