c - 将 main 的 *argv[] 传递给另一个函数正在调用的函数?
问题描述
所以我有我的主要功能,还有另外两个功能,func1 和 func2。main 是从用户那里获取参数,将它们传递给 func1。fun1 检查了一些东西,然后想将参数发送给 func2。
我该怎么做?
int main( int argc, char *argv[] ) {
if( argc == 3 ){
func1(argv);
}
void func1(char **argv){
if(strcmp(argv[2], "-win"))
func2(argv);
}
void func2(char ***argv){ //is this the right way?
......
}
我的意思是我知道 func1 正在接收参数,因为当我尝试它而不将它们发送到 func2 时,它起作用了。但我试图弄清楚如何将它们从 func1 发送到 func2。
解决方案
查看文件中的这段代码main.c
:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void func1(char **argv);
void func2(char **argv);
int main(int argc, char *argv[])
{
// you are need to pass 2 things to run this
if (argc == 3)
{
func1(argv);
}
return 0;
}
void func1(char **argv)
{
if (strcmp(argv[2], "-win")==0)
func2(argv);
}
void func2(char **argv)
{
printf("%s\n", argv[2]);
}
运行gcc -Wall main.c -o main && ./main f -win
你会得到输出:-win
到控制台。您不应该在内部操作数据argv
,更安全的选择是更改func2
为:
char *func2(char **argv)
{
// Return some value after receiving argv
}
并返回您想要执行的操作的任何类型的结果。
推荐阅读
- kubernetes - 无法将部署从 apiVersion extensions/v1beta1 升级到 apps/v1,它会自动使用 extensions/v1beta1
- sql - 如何在 R 中使用并行计算?
- c++ - 视窗 C++ | 写入文件时,是什么负责将 \n 转换为 \r\n?
- python - 根据输入删除数据框行
- python - 使用和编辑 Python 站点包
- kubernetes - 如何测量 Kubernetes 容器启动时间?
- payment-gateway - Stripe webhook 出现 502 bad gateway 错误
- sql - SQL:检索日期的第一个更新
- python - 在具有相关列名和索引的数据框中查找最大值
- console-application - 控制台 Google oAuth - 验证