我听说在 Windows 中,参数被传递给一个参数,然后程序将其拆分为多个参数,在其运行时库中,有时在实际代码中。
我听说大多数 C/C++ 编译器在运行时库中执行此操作(例如,我下载的 TCC - Tiny C Compiler)
有没有我可以下载的 C 编译器?有指向它们的链接吗?
在这样的编译器中,argsv[0]
会拥有整个字符串吗?
已添加
它基于此人 ( jdedb ) 在 super 用户问题 Can't pipe or redirect Cygwin grep output 中所说的内容,似乎建议我在 Stack Overflow 上提问。
“如果它想以 Unix(和 C 语言)方式运行,则由被调用程序将命令尾部拆分为单词。(Win32 的大多数 C 和 C++ 语言实现的运行时支持库在后面进行拆分场景。”
他说是编译器.. 但是according to Necrolis ,它不是编译器。 (添加- Necrolis 评论纠正我的误读,编译器!=运行时库)
最佳答案
如果您使用的是 Windows,只需使用 GetCommandLine
.这就是大多数 CRT 包装器让命令行开始拆分的方式。
至于你的实际问题,它不是编译器,而是他们使用的 CRT 启动包装器。如果您实现 mainCRTstartup
,并用它覆盖入口点,您可以做任何您想做的事。可以看到它如何工作的一个很好的例子 here .
关于c - 不在其运行时库中拆分参数的 Windows C 编译器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8267051/