【发布时间】:2015-01-05 15:18:01
【问题描述】:
函数来自这里:http://v6shell.org/history/if.c
或者使用语法高亮:http://pastebin.com/bj0Hvfrw
char *nxtarg() {
if (ap>ac) return(0*ap++);
return(av[ap++]);
}
这是返回下一个参数的函数。 ac 是 argv 中的参数个数,ap 是当前参数的索引。
所以我认为if ( ap > ac ) 我们正在测试是否还有更多参数。我的问题来了:
如果 ap 已经大于 ac,那么为什么要增加 ap [ return( 0 * ap++ ) ],因此没有更多参数?
我只想返回(0)。 如果我只返回(0)会有什么问题?你能举个例子吗?
注意这是旧的 K&R-C。
【问题讨论】:
-
以后可能会用到,这说明数组已经迭代过了。
-
代码中散布着
ap--。大概所有这些都可以一起工作。 -
注意ap是不同函数使用的全局变量。