在编程语言中,特别是在 C 语言中,这种方法是否适用?
在互联网上到处都是(至少我看到的)C 示例中,对接收到的.exe 的参数的访问是在一个循环中给出的,我紧张并没有循环得到它:
#include <stdio.h>
int main (int argc, char * argv[]) {
printf("Argument %d: %s\n", 2, argv[2]);
return 0;
}
}
另一方面,此线程中的@Harry提供了以下代码:
ShellExecute(0, "open", "notepad","c:\\2.txt",
NULL, SW_RESTORE);
如果我们严格把叠加原理扩展到脚本,那么下面的代码:
#include <stdio.h>
int main (int argc, char * argv[]) {
//printf("Argument %d: %s\n", 2, argv[2]);
ShellExecute(0, "open", "winword", 1, argv[1], NULL, SW_RESTORE);
if(argc == 1) {
printf("Command line has no additional arguments\n");
return 0;
}
}
应该产生一个 100% 保证的可行的 .exe。那么,为什么不叠加脚本呢?同时,我绝对不在乎(还)这个脚本(和第一个)参数前面的 1 是什么意思:重要的是 1 在第一个脚本中。但是……唉,啊:这段代码编译失败,.exe文件没有形成。这意味着叠加,至少毫无疑问,不适用于脚本 - 但这是某种废话,一切都应该达到绝对水平!
版主会惩罚我,但我无法抗拒......
编程中没有这样的概念。我假设我们正在讨论函数的组合。
是的,适用。
.exe
的参数,而不是调用本身.exe
。阅读有关编程基础知识的教程,这样这些事情就不再麻烦了。
您的代码的工作版本:
这是一个函数调用的例子(一段工作代码)。
其实没什么。如果我取一个工作函数的一部分,把它塞进另一个工作函数的一部分,甚至改变那里的系数,我能保证得到一个有意义的结果吗?
你可能不在乎,但编译器不在乎。
ShellExecute
以一定的顺序接受一定数量的参数。并且编译器期望准确地接收它们。显然,是因为程序没有正确编写。
显然,如果编译器失败。
如果我没有正确解方程,那么显然应该归咎于数学。
我同意。
什么都”?谁“应该”?“绝对水平”是什么?
您的代码的工作版本(应该是,没有 Windows,所以我无法检查):