• 请不要在回答技术问题时复制粘贴 AI 生成的内容
yezheyu
V2EX  ›  程序员

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

  •  
  •   yezheyu · Feb 7, 2022 · 3046 views
    This topic created in 1690 days ago, the information mentioned may be changed or developed.

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

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

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

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

    我上面的理解对吗?

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

    对 windows 下的注册表不太了解

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

    没在 Windows 下写过程序,不过注册表也是一种可以把参数传进去的方法。
    loginv2
        8
    loginv2  
       Feb 8, 2022
    @yezheyu 类似于 /etc 目录。是一个配置文件数据库
    yezheyu
        9
    yezheyu  
    OP
       Feb 8, 2022
    @loginv2 理解了,多谢
    secondwtq
        10
    secondwtq  
       Feb 8, 2022
    典中典面函数 ...
    不过楼主思路是对的,各种花样折腾来折腾去效果和传参是一样的
    jim9606
        11
    jim9606  
       Feb 9, 2022
    @yezheyu
    可以这么理解,一个支持并发读写(多进程读写相同项)和权限控制的结构化数据库。
    在 HDD 和小内存时代,注册表可以减少大量小文件的创建和读取操作,提高启动速度。现在随着 FS 改进和 SSD ,这个积极作用已经不太重要了,所以追求跨平台能力的程序又回到配置文件了。
    通常,环境变量和命令行是传递一次性使用,不需要持久化的配置。密码类参数通常用环境变量传递。
    Linux 类似注册表的技术是 dconf ,主要是 GNOME 全家桶在用。
    yezheyu
        12
    yezheyu  
    OP
       Feb 9, 2022
    @jim9606 谢谢,明白了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   853 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 20:58 · PVG 04:58 · LAX 13:58 · JFK 16:58
    ♥ Do have faith in what you're doing.