读书人

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

发布时间: 2012-04-25 19:32:32 作者: rapoo

谁能解释一下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编译器的强大。

读书人网 >驱动开发

热点推荐