2019-03-24 11:06发布
zzbaizhi 发表于 2014-8-7 08:54 这个“不初始化的块”如何确定呀?
sint27 发表于 2014-8-6 16:47 地址不是必须的, 有带地址的一般和硬件相关,如头文件的寄存器的声明,而该地址在datasheet可查到 __no_ ...
最多设置5个标签!
@就是指定地址,这个应该没什么好说的了,大部分编译器都这么用。你应该理解这个吧。
你定义全局变量的时候比如int char; 即使你没有赋值给他,编译器还是会给他一个初始化值0,编译的时候编译器把他分配到初始化为零的那个SEGMENG中去了。编译器默认的有几个块,初始化为零的块,初始化不为零的块,和不初始化的块,你可以定义自己的块,如XDATA,这个就是你自己定义的一个块,那你的这个块是个什么属性呢,就是,__no_init 属性,有了这个属性,编译器只给你分配空间,不给你初始化。
有带地址的一般和硬件相关,如头文件的寄存器的声明,而该地址在datasheet可查到
__no_init的作用是不对变量进行初始化,该变量在声明的同时不能初始化,但是声明过后可以对其赋值,所以该变量还是有值的
可以自己定义,具体定义方法看IDE的说明手册
试着写了个小程序,出现问题,好像是没有给A分配空间,用的是MSP430F5438,请大侠再指点一下
一周热门 更多>