-1

我想知道命令行参数的参数传递是如何工作的?我的组件有点生锈。我知道一个函数的参数是由它的调用者推入堆栈的。命令行参数呢?它们是如何被推入主函数的堆栈框架的?

谢谢

4

1 回答 1

0

在标准 C 中,main至少可以采用两个参数——第一个是命令行参数的数量,第二个是指向它们的指针数组。它们出现在堆栈上的顺序是实现定义的,但 C 的一个常见约定是将它们从右向左推送,因此后续 args 出现在更高的地址。

就原始组装而言,尽管......就像大多数与组装相关的东西一样,它依赖于平台。Linux 会为您解析命令行参数,并在堆栈上传递指向它们的指针。在 Windows 中,命令行是通过调用操作系统(GetCommandLineAGetCommandLineW)来检索的,然后您自己解析它。如果您在 Windows 应用程序中使用 C 或 C++,则命令行也是WinMain.

于 2013-03-18T15:28:45.070 回答