V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yezheyu
V2EX  ›  程序员

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

  •  
  •   yezheyu · 2022-02-07 20:26:45 +08:00 · 2106 次点击
    这是一个创建于 805 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    我上面的理解对吗?

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

    对 windows 下的注册表不太了解

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

    没在 Windows 下写过程序,不过注册表也是一种可以把参数传进去的方法。
    loginv2
        8
    loginv2  
       2022-02-08 09:44:30 +08:00
    @yezheyu 类似于 /etc 目录。是一个配置文件数据库
    yezheyu
        9
    yezheyu  
    OP
       2022-02-08 13:40:08 +08:00
    @loginv2 理解了,多谢
    secondwtq
        10
    secondwtq  
       2022-02-08 19:17:22 +08:00
    典中典面函数 ...
    不过楼主思路是对的,各种花样折腾来折腾去效果和传参是一样的
    jim9606
        11
    jim9606  
       2022-02-09 16:32:30 +08:00
    @yezheyu
    可以这么理解,一个支持并发读写(多进程读写相同项)和权限控制的结构化数据库。
    在 HDD 和小内存时代,注册表可以减少大量小文件的创建和读取操作,提高启动速度。现在随着 FS 改进和 SSD ,这个积极作用已经不太重要了,所以追求跨平台能力的程序又回到配置文件了。
    通常,环境变量和命令行是传递一次性使用,不需要持久化的配置。密码类参数通常用环境变量传递。
    Linux 类似注册表的技术是 dconf ,主要是 GNOME 全家桶在用。
    yezheyu
        12
    yezheyu  
    OP
       2022-02-09 21:52:32 +08:00
    @jim9606 谢谢,明白了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5388 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 07:39 · PVG 15:39 · LAX 00:39 · JFK 03:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.