沙海拾贝(一):201409
2015-09-18 15:56
183 查看
鉴于有很多零碎的知识,写在笔记本里面容易搞忘了,所以单独开一篇文章来记录。
常用来保存一些敏感信息,特殊应用场合下的不能被复位的数据或者做复位判断标志等数据(详细使用方法见:)
1.2、@就是指定地址(大部分编译器都是这么用的)。
在定义全局变量的时候,比如 int char; 即使你没有赋值给他,编译器还是会给他一个初始化值0,编译的时候编译器把他分配到初始化为零的那个SEGMENT中去了。
编译器默认的有几个块
a.初始化为零的块
b.初始化不为零的块
c.不初始化的块
我们可以定义自己的块,代码如下:
参考来源:点击打开链接
【END/2015-09-23】
3.1
作用:将后面的字符串用一个清晰易记的名字来替代,编译时后面的内容将取代前面的宏名
优点:方便程序修改、提高程序运行效率
装逼说法:被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。
3.2
作用:重命名,便于理解和记忆
优点:方便不一混淆
装逼说法:自己看百度百科吧,^_^。
【END/2015-12-04】
1 IAR编程环境中的两个小问题
1.1、__no_init 是一个SEGMENT(段),是给LINKER用的,定义到不初始化的块中去。常用来保存一些敏感信息,特殊应用场合下的不能被复位的数据或者做复位判断标志等数据(详细使用方法见:)
1.2、@就是指定地址(大部分编译器都是这么用的)。
在定义全局变量的时候,比如 int char; 即使你没有赋值给他,编译器还是会给他一个初始化值0,编译的时候编译器把他分配到初始化为零的那个SEGMENT中去了。
编译器默认的有几个块
a.初始化为零的块
b.初始化不为零的块
c.不初始化的块
我们可以定义自己的块,代码如下:
extern volatile BYTE sppRxStatus; extern volatile BYTE sppTxStatus; __no_init SPP_RX_STRUCT rxData @ "PM0_XDATA"; __no_init SPP_TX_STRUCT txData @ "PM0_XDATA";如上面的PM0_XDATA就是自己定义的一个块,那么这个块是个什么属性呢?是__no_init 属性,有了这个属性,编译器只给你分配空间,不给你初始化。
参考来源:点击打开链接
2 将汉字放入数组
我们知道,一个汉字占两个字节,而单引号只能放一个字节,所以我们使用双引号(放字符串),形式如下:const char* name = "例子"; SendDataBuf[9] = *name; SendDataBuf[10] = *(name + 1); SendDataBuf[11] = *(name + 2); SendDataBuf[12] = *(name + 3);或者
const char* name = "例子"; SendDataBuf[9] = name[0]; SendDataBuf[10] = name[1]; SendDataBuf[11] = name[2]; SendDataBuf[12] = name[3];
【END/2015-09-23】
3 宏定义和重命名
今天看uCOS-II的内核代码,突然分不清楚一个很简单的小问题,因此做一个小记录,代码如下:#define HONG_DING_YI 10 //宏定义 前面代替后面 typedef unsigned char u8; //重命名 后面代替前面
3.1
define
作用:将后面的字符串用一个清晰易记的名字来替代,编译时后面的内容将取代前面的宏名优点:方便程序修改、提高程序运行效率
装逼说法:被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。
3.2
typedef
作用:重命名,便于理解和记忆优点:方便不一混淆
装逼说法:自己看百度百科吧,^_^。
【END/2015-12-04】
相关文章推荐
- android web
- JSP: JSTL标签详解
- PHP编程规范
- ios9 http请求报错
- dom 元素占据高度
- 大神的博客地址liferay
- Laravel5 打印SQL
- NSX系列之NSX试验环境准备与部署NSX Manager
- 详解C++编程中的单目运算符重载与双目运算符重载
- logstash安装和使用
- Linux 搭建 SVN 服务器端【完全可以执行】
- 复选框CheckBox
- Servlet-异步执行AsyncContext
- jq简单的动画
- TOF相机基本知识
- 国内开源镜像站
- MySQL(13):Select-order by
- Installation error: INSTALL_FAILED_UPDATE_INCOMPATIBLE
- openwrt luci管理的Web界面实例
- WAV文件格式分析