当前位置: 代码迷 >> 驱动开发 >> 哪位高手能解释一下uboot中的这行代码
  详细解决方案

哪位高手能解释一下uboot中的这行代码

热度:38   发布时间:2016-04-28 10:56:55.0
谁能解释一下uboot中的这行代码
int cmd_items = &__u_boot_cmd_end -
&__u_boot_cmd_start; /* pointer arith! */

为什么这样cmd_items就得到了命令得个数?


------解决方案--------------------
应该是那样的,因为两个都指针类型的,预算的时候就会按照指针运算
------解决方案--------------------
引用相减本来就是要除以sizeof(type)的...
这是常识啊。
所以你的问题得到的就是几条指令,因为无论如何是要除以指令长度的。
------解决方案--------------------
探讨
int cmd_items = &__u_boot_cmd_end -
&__u_boot_cmd_start; /* pointer arith! */

为什么这样cmd_items就得到了命令得个数?

------解决方案--------------------
嘿嘿,问题的关键就是,相减的时候,编译器是按照“类型”来减的,这个帖子真有意思!反应了C编译器的强大。