请问主函数传参给子子函数问题怎么高效?
本帖最后由 我叫学得会 于 2021-4-14 11:56 编辑师傅们,请问主函数传参数给子子函数,什么方法比较高效不占内存?还请师傅们示例,谢谢师傅们!
#include <iostream>
#include <windows.h>
#include <string>
//#include "b64/base64.h"
//传进参数:geturl: http://www.baidu.com/
using namespace std;
int main(int argc, char** argv[])
{
if (argc != 2)
{
return -1;
}
else if(argv == 1)
{
test1();
test3();
return 0;
}
else
{
return -1;
}
}
void test1()
{
while (true) {
try {
test2();
}
catch (const std::exception& e)
{
}
}
return;
}
void test2()
{
MessageBox(NULL, TEXT(geturl), TEXT("帮助"), MB_OK);
return;
} 教教孩子吧~ 我叫学得会 发表于 2021-4-14 12:41
教教孩子吧~
通过命令行传??对于子函数肯定是通过栈传参啊 wp231957 发表于 2021-4-14 18:26
通过命令行传??对于子函数肯定是通过栈传参啊
师傅可以代码示范一下吗?,这种资料太少找不到示例,寻找高效的方法,不占太多内存的 我叫学得会 发表于 2021-4-14 19:06
师傅可以代码示范一下吗?,这种资料太少找不到示例,寻找高效的方法,不占太多内存的
不知道你想干嘛 wp231957 发表于 2021-4-14 19:22
不知道你想干嘛
就是把主函数 输入的值(一串网址)传递给子函数里的子函数调用,我自己写的感觉不正规,想求个行家版本、、、 我叫学得会 发表于 2021-4-14 20:11
就是把主函数 输入的值(一串网址)传递给子函数里的子函数调用,我自己写的感觉不正规,想求个行家版本 ...
我也③楼都问过了,你这个网址是通过命令行方式传进去吗 我叫学得会 发表于 2021-4-14 20:11
就是把主函数 输入的值(一串网址)传递给子函数里的子函数调用,我自己写的感觉不正规,想求个行家版本 ...
说半天 也没说明白你想干嘛,瞎写了一个 看看是不是你想要的
#include <stdio.h>
void test(char *s)
{
printf("瞧,主函数从命令行传进来的参数跑到我这里了,它就是:\n %s\n",s);
}
int main(int argc, char* argv[])
{
if (argc<2)
{
printf("需要参数\n");
return 0;
}
test(argv);
return 0;
}
/*
PS E:\wp> ./test2 http://www.baidu.com
瞧,主函数从命令行传进来的参数跑到我这里了,它就是:
http://www.baidu.com
PS E:\wp> ./test2
需要参数
PS E:\wp>
*/ 本帖最后由 我叫学得会 于 2021-4-14 22:21 编辑
wp231957 发表于 2021-4-14 20:41
说半天 也没说明白你想干嘛,瞎写了一个 看看是不是你想要的
是这样的,网址是 命令行传参主函数,然后这个test(argv);test()里面还包涵着其他子函数,参数还要传进这个test2() test3()等其他都会调用这个值,求高效传递方法{:10_243:}
#include <stdio.h>
void test(char *s) //这里还包括2个子函数需要调用 main函数的参数
{
printf("瞧,主函数从命令行传进来的参数跑到我这里了,它就是:\n %s\n",s);
test2(需要主函数的参数值);
test3(需要主函数的参数值);
}
int main(int argc, char* argv[])
{
if (argc<2)
{
printf("需要参数\n");
return 0;
}
test(argv);
return 0;
}
/*
PS E:\wp> ./test2 http://www.baidu.com
瞧,主函数从命令行传进来的参数跑到我这里了,它就是:
http://www.baidu.com
PS E:\wp> ./test2
需要参数
PS E:\wp>
*/ 8楼的代码不够高效吗?你所说的高效指的是?
人造人 发表于 2021-4-14 22:22
8楼的代码不够高效吗?你所说的高效指的是?
就是 test(argv)函数下还包括其他子函数需要调用main函数的值,所以有点乱。。。
#include <stdio.h>
void test(char *s)
{
printf("瞧,主函数从命令行传进来的参数跑到我这里了,它就是:\n %s\n",s);
test3(需要调用main函数参数); //是这里的众多函数都需要调用main函数的 参数
test4(需要调用main函数参数); //这里也需要调用main函数的 参数
}
int main(int argc, char* argv[])
{
if (argc<2)
{
printf("需要参数\n");
return 0;
}
test(argv);
return 0;
}
/*
PS E:\wp> ./test2 http://www.baidu.com
瞧,主函数从命令行传进来的参数跑到我这里了,它就是:
http://www.baidu.com
PS E:\wp> ./test2
需要参数
PS E:\wp>
*/ 我叫学得会 发表于 2021-4-14 20:11
就是把主函数 输入的值(一串网址)传递给子函数里的子函数调用,我自己写的感觉不正规,想求个行家版本 ...
#include <stdio.h>
void test4(char *s)
{
printf("瞧,主函数从命令行传进来的参数跑到我这里了,它就是:\n %s\n",s);
}
void test3(char *s)
{
test4(s);
}
void test2(char *s)
{
test3(s);
}
void test1(char *s)
{
test2(s);
}
int main(int argc, char* argv[])
{
if (argc<2)
{
printf("需要参数\n");
return 0;
}
test1(argv);
return 0;
}
我叫学得会 发表于 2021-4-14 22:46
就是 test(argv)函数下还包括其他子函数需要调用main函数的值,所以有点乱。。。
#include<stdio.h>
#include<math.h>
//typedef enum {true=1,false=0}bool;
void test4(char *s)
{
printf("我是主函数传参第三个参数:\n %s\n",s);
}
void test3(char *s)
{
printf("我是主函数传参第二个参数:\n %s\n",s);
}
void test2(char *s)
{
printf("我是主函数传参第一个参数:\n %s\n",s);
}
void test1(char *s1,char *s2,char *s3)
{
test2(s1);
test3(s2);
test4(s3);
}
int main(int argc, char* argv[])
{
if (argc<4)
{
printf("本程序至少需要三个参数\n");
return 0;
}
test1(argv,argv,argv);
return 0;
}
/*
PS D:\我> ./wp1
本程序至少需要三个参数
PS D:\我> ./wp1 1
本程序至少需要三个参数
PS D:\我> ./wp1 1 2
本程序至少需要三个参数
PS D:\我> ./wp1 1 2 3
我是主函数传参第一个参数:
1
我是主函数传参第二个参数:
2
我是主函数传参第三个参数:
3
PS D:\我>
*/
页:
[1]