
比如一个孩子出生了,那这个孩子是不是具备了下面的这几个属性:
1.性名,2.性别,3.年龄等等,这是最基本的数据,只要是一个人。那是不是在这个孩子出生的时候得将为些数据给赋于了,不然怎么知道这个孩子是性肆纳激名叫啥,是男还是女,呵呵,这就是基本的数据,如果这个孩子长大以后觉得这个名字不好听,可以改,想做人妖,行啊,做手术就得了。呵呵,
程序也是裂袜如此,程序说白了就是 *** 作内存的数据,所以在你声茄孝明了一个变量的同时给于这个变量的一个基本的值,让这个值具体的存在,让程序可以理解这个变量,这就叫初始化,
在使用 ROS 之前,需要先初始化滑配搭信拿 rosdep。rosdep 使得你可以为你想要编译的源码,以及需要运行的 ROS 核心组件,简单地安装系统依赖。
环境设置:
然后再初始化环境变量:(每次启动一个新的终端时,ROS 环境变量都能自动卖梁地添加进你的 bash )
一定要运行以下命令,才可启动:
如果安装了多个 ROS 发行版,则 ~/.bashrc 必须只 source 当前正在使用的那一版的 setup.bash。
如果你只想要修改当前 shell 的环境,则输入如下的命令来替换上面的命令:
注意: turtlesim 的运行依赖于 roscore 的运行,因此在测试 turtlesim 需要同时运行 roscore,也就是同时再打开一个终端运行。
出现一只随机的乌龟
(1)int a[]={1,2,3,4,5}//OK
(2)
int a[5]
a={1,2,3,4,5}
//ERROR
结论:对于数组用大括号{}的赋值方式只是配升在定义的时候适用
否则必须用循环的方式
结构体初始化(方法一)
using
namespace std
struct S{
int i
float f
}
struct S
s={10,15.5}//使用{}的正确方式
如果改成
struct S
s
s={10,15.5}就不行
方法二(通行的培绝老方法)
从Ucos_ii.c内核代码中学到的
OS_MemClr((INT8U
*)&OSTCBTbl[0],sizeof(OSTCBTbl))Clear all the
tcb
下面是给结构体数组宏桥清零的函数,实质是将结构体占据的内存区域视为字符变量区域
,用循环对单个内存字节单元的清零来实现对结构体占据的内存区域即(结构体)的清零
void
OS_MemClr (INT8U *pdest, INT16U size)
{
while (size >0) {
*pdest++
= (INT8U)0
size--
}
}
注意函数OS_MemClr中的强制类型转换 INT8U
(*)&OSTCBTbl[0],
目的是将结构体指针转化成字符型指针,对单个内存单元的清零(*pdest++ =
(INT8U)0),来完成对结构体的清零(或者是结构体数组)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)