无忧启动论坛

标题: C 大,您可以不可以为grubcall 这个批处理能写点注释? [打印本页]

作者: hotdll    时间: 2011-12-12 21:47
标题: C 大,您可以不可以为grubcall 这个批处理能写点注释?
C 大,您可以不可以为grubcall 这个批处理能写点注释?

打开一看,都是call的调用,但是一个字的注释都没有,无从下手啊。。。

看挨个测试命令猜功能真的很难。
作者: chenall    时间: 2011-12-12 22:33
是一些函数调用,我也不知怎么注释。

基本上和C语言的函数差不多。

比如:printf
就是直接grubcall printf "Hello Word"
或,像这样子的。
grubcall printf "Hello Word :%s" "this is test"

其它的函数请参考C语言的对应的函数,没有的参考GRUB4DOS.H或源码相应内容,有一些函数我从来没有用过。不清楚我也是自己翻翻源码找到相应的用法。然后才了解的。
作者: xjn147    时间: 2011-12-13 08:21
没有说明书的产品.
作者: chenall    时间: 2011-12-13 11:34
标题: 回复 #3 xjn147 的帖子
这个是给我自己用的,不是给普通用户使用的。不需要什么说明书,即使有估计你也不会去看。
作者: 快雪时晴    时间: 2011-12-13 12:31
怎么又出了个grubcall,刚知道有数字形式的call
作者: Plantsoot    时间: 2011-12-13 12:36
原帖由 快雪时晴 于 2011-12-13 12:31 发表
怎么又出了个grubcall,刚知道有数字形式的call


就是进行了一次数字和函数名的对应,用起来更顺手一些。
作者: my9823    时间: 2011-12-13 14:11
稀饭哥赶紧找本c看看吧!哈哈…
作者: hotdll    时间: 2011-12-13 15:46
标题: 回复 #7 my9823 的帖子
这不是C好不好。。。。。
C我虽然不精,但是C的函数调用见过C的人都应该会调用。
作者: chenall    时间: 2011-12-13 21:49
标题: 回复 #8 hotdll 的帖子
这就是C语言的函数调用。
举个例子吧。

还是最简单的printf函数
用C语言的写法

printf("Hello Word!")
printf("%d",123)
grubcall写法
grubcall printf "Hello Word!"
grubcall printf "%d" 123

call Fn.0 0 "Hello Word!"
call Fn.0 0  "%d" 123

可能是你看到了call Fn.0 0有点混乱。

printf = sprintf(0,......)
作者: chenall    时间: 2011-12-13 21:52
另外因为call Fn.x只能处理32位数,如果你的参数是64位的就要拆开变成两个。低32位在前,高32位在后。
比如

call Fn.0 0 "0x%lx"  0x12345678 0xabcdef

关键还是灵活变通,什么语言都是死的。
作者: hotdll    时间: 2011-12-13 22:41
标题: 回复 #10 chenall 的帖子
谢谢C大,学习了。

其实我觉得还是封装成C的那种调用比较习惯一些。
作者: chenall    时间: 2011-12-13 23:43
标题: 回复 #11 hotdll 的帖子
要封装的话,你只能自己写一个外部命令来实现。因为函数的参数都不一样。

不是那么简单可以实现的,使用call Fn.x有一个好处。代码很少,只要20行左右的样子就可以实现。

而且所有函数通用。

如果要封装起来,我看没有1KB的代码恐怕是没有办法实现。而且以后新增加函数还得重新封装一次。

目前的方式可以随意增加函数,不需要改任何代码。
作者: hotdll    时间: 2011-12-14 10:03
标题: 回复 #12 chenall 的帖子
明白了。突然想起来调用函数的环境是g4d,而不是c的环境。

我去适应下call Fn.x 估计不会太难吧。

谢谢C大。




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net./) Powered by Discuz! X3.3