《一个操作系统的实现》第九章 关于初始化的问题

大家好:

最近在看 《一个操作系统的实现》 这本书, 已经看到了第九章了。不过,遇到了一个关于初始化的问题:

里面有一个函数是这样的:

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 这个变量部分成员没有初始化,那么这些成员的初始值就是垃圾值。但是为什么作者要这样写,而且,代码我运行过,完全没有问题

究竟是怎么一回事?

阅读 3.6k
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进