定义与初始化的区别
求教:定义与初始化的区别现有CLK_Definit(void){CM00x00//CM0为系统时钟寄存器0CM10x28//CM1为系统时
求教:定义与初始化的区别
现有
CLK_Definit(void)
{
CM0=0x00;//CM0为系统时钟寄存器0
CM1=0x28;//CM1为系统时钟寄存器1
......
} 这个函数应该是对时钟进行定义吧
为什么后面还要有初始化(配置)函数啊
CLK_CM0_Init(void)
{
.......配置CM0,对CM0赋初值......
}
我觉得上面的函数CLK_Definit()不同于我们的定义变量(如 int i;),这里的CLK_Definit(void)
函数定义不是就相当于初始化赋处置了吗?
求教,被这里的定义和初始化搞晕了! 定义?初始化?配置
[解决办法]
其实楼主看看函数的名字就可以了。一个显然是默认的 default_init
[解决办法]这两个明显完全不同用途的函数啊,第一个同时给CM0和CM1赋值,第二个只给CM0赋值,而且我怀疑里面赋值内容也不一样。
[解决办法]那这就很明显了,
CLK_Definit();
没参数的这个,是给各变量赋默认值,这些默认值是固定的
CLK_CM0_Init(多个参数);
有参数的这个,是把输入参数给各变量赋值,这些值可以改变的
[解决办法]不要和语言的定义和初始化混淆,没有任何关系。
系统时钟寄存器0,去看datasheet或者相关的编程手册。
[解决办法]定义和初始化是两个不同阶段吧
定义是指编译器生成代码告诉CPU读入代码的时候知道需要分配多少内存
初始化是CPU执行的时候根据代码开始实际分配内存。
[解决办法]看我14楼的贴,前一个是设置默认值,就像很多软件的“恢复默认”功能一样;
[解决办法]定义就是说有这么个东西。。
初始化时说这个东西的值是什么。。
只有定义没初始化在C++里是不能用的,只有初始化没有定义在C++里会报错的。
[解决办法]你应该知道堆和栈吧?
[解决办法]计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……