use*_*120 0 c++ command-line-arguments
我究竟需要做什么才能将argv [1]的内容转换为不使用参数的函数?
这是如何运作的?
const char *cPtr = argv[1];
Run Code Online (Sandbox Code Playgroud)
并将其传递给带有0个参数的someFunction()!
如果您不想将其作为参数传递,则需要将其推送到全局中,以便函数可以以这种方式访问它.我知道没有其他方法(除了愚蠢的事情,比如把它写入文件main()并在函数中读取它):
static char *x;
static void fn(void) {
char *y = x;
}
int main (int argc, char *argv[]) {
x = argv[1];
fn();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这不是我怎么做的.既然你需要能够改变fn()以获得访问权限x,我会重写它以传递参数:
static void fn(char *x) {
char *y = x;
}
int main (int argc, char *argv[]) {
fn(argv[1]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当然,除非这是家庭作业,脑筋急转弯或面试问题.