请教下关于函数传参的一点疑问

2022-02-07 20:26:45 +08:00
 yezheyu

像普通的函数传参就是在 mian 函数内部传递

而对于 mian 函数本身需要传参,一般是在脚本运行时,在终端中以命令行参数的形式传递给 mian 函数

如果参数固定不变,可以把参数直接写到环境变量中,脚本执行时无需指定参数,而是从环境变量中加载

如果参数比较多,可以把参数写入到配置文件中或者注册表中

我上面的理解对吗?

2207 次点击
所在节点    程序员
12 条回复
MacDows
2022-02-07 20:28:40 +08:00
main
yezheyu
2022-02-07 20:38:36 +08:00
@MacDows 丢人了,写错了,哈哈
wangyu17455
2022-02-07 20:47:20 +08:00
wzzzx
2022-02-07 22:36:24 +08:00
都可以,反正就参数获取方式不同而已
jim9606
2022-02-07 23:48:18 +08:00
一般程序启动设置是有一个覆盖顺序的,例如硬编码默认值-全局配置文件(%ProgramData%或 HKLM)-本地配置文件(%APPDATA%或 HKCU)-环境变量-命令行,后者可覆盖前者的值,main 函数按顺序读取,生成完整参数表传给程序入口。
yezheyu
2022-02-08 00:55:01 +08:00
@jim9606 多谢解惑

对 windows 下的注册表不太了解

注册表这个东西是相当于共用的配置文件吗?
dangyuluo
2022-02-08 03:28:35 +08:00
传参这种事有很多种办法,你说的只是其中一种,没有对错之分。你还可以把参数写在 json/yaml/toml 文件里,把文件传给 exe ,或者是从某个 URL 获取参数,甚至你可以写一个语音识别,程序运行的时候你对着麦克风把参数念出来。一切都取决与你写程序的目的和限制条件。

没在 Windows 下写过程序,不过注册表也是一种可以把参数传进去的方法。
loginv2
2022-02-08 09:44:30 +08:00
@yezheyu 类似于 /etc 目录。是一个配置文件数据库
yezheyu
2022-02-08 13:40:08 +08:00
@loginv2 理解了,多谢
secondwtq
2022-02-08 19:17:22 +08:00
典中典面函数 ...
不过楼主思路是对的,各种花样折腾来折腾去效果和传参是一样的
jim9606
2022-02-09 16:32:30 +08:00
@yezheyu
可以这么理解,一个支持并发读写(多进程读写相同项)和权限控制的结构化数据库。
在 HDD 和小内存时代,注册表可以减少大量小文件的创建和读取操作,提高启动速度。现在随着 FS 改进和 SSD ,这个积极作用已经不太重要了,所以追求跨平台能力的程序又回到配置文件了。
通常,环境变量和命令行是传递一次性使用,不需要持久化的配置。密码类参数通常用环境变量传递。
Linux 类似注册表的技术是 dconf ,主要是 GNOME 全家桶在用。
yezheyu
2022-02-09 21:52:32 +08:00
@jim9606 谢谢,明白了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/832314

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX