大家好:
最近在看 《一个操作系统的实现》
这本书, 已经看到了第九章了。不过,遇到了一个关于初始化的问题:
里面有一个函数是这样的:
PRIVATE void hd_identify(int dirve)
{
struct hd_cmd cmd;
cmd.device = MAKE_DEVICE(0, drive, 0);
cmd.command = ATA_IDENTIFY;
hd_cmd_out(&cmd);
.....
}
其中, struct hd_cmd
的定义是这样的:
struct hd_cmd {
short feature;
short count;
short lba_low;
short lba_mid;
short lba_high;
short device;
short command;
}
然后,hd_cmd_out
这个函数用到了 strcut hd_cmd cmd
这个变量的所有成员。
我的问题是,struct hd_cmd cmd
这个变量部分成员没有初始化,那么这些成员的初始值就是垃圾值。但是为什么作者要这样写,而且,代码我运行过,完全没有问题。
究竟是怎么一回事?
我觉得是无心的吧,没有那么多含义,小白一个,坐等大神回答