rc = ((ulong (*)(int, char *[]))addr) (--argc, &argv[1]); 这句什么意思?
- /* common/cmd_boot.c */
- int do_go (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
- {
- ulong addr, rc;
- int rcode = 0;
- if (argc < 2) {
- printf ("Usage:\n%s\n", cmdtp->usage);
- return 1;
- }[b][/b]
- addr = simple_strtoul(argv[1], NULL, 16);
- printf ("## Starting application at 0x%08lX ...\n", addr);
- /*
- * pass address parameter as argv[0] (aka command name),
- * and all remaining args
- */
- [b] rc = ((ulong (*)(int, char *[]))addr) (--argc, &argv[1]);[/b]
- if (rc != 0) rcode = 1;
- printf ("## Application terminated, rc = 0x%lX\n", rc);
- return rcode;
- }
复制代码rc = ((ulong (*)(int, char *[]))addr) (--argc, &argv[1]);
帮忙解释下这句话每部分什么意思吧
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
回复 1# bsknight
((ulong (*)(int, char *[]))addr)
是一个类型转换运算
转换addr的值 得到(ulong (*)(int, char *[])) 类型的数据
(ulong (*)(int, char *[])) 是一个指针类型,指针指向参数类型为(int, char *[])返回值类型为ulong的函数
其余的就不必再进一步解释了吧
给楼主推荐C陷阱与缺陷,C专家编程,C与指针,C语言深度解剖等。
当然,还有一本千万记得,二楼那个《狂人C:程序员入门必备》。
回复 3# cokeboL
呵呵。多谢
本帖最后由 bsknight 于 2011-04-26 00:39 编辑
回复 3# cokeboL
恩。。知道了 谢谢~
回复 2# KBTiller
明白了 感谢~