在编译时将参数传递给主函数

Posted

技术标签:

【中文标题】在编译时将参数传递给主函数【英文标题】:Pass arguments to main function at compiling time 【发布时间】:2013-05-26 18:40:56 【问题描述】:

我是一名学习 C++ 的新手程序员,我在 Visual Studio 2010/12 和 Linux Mint 中的 Qt Creator 中都尝试过以下问题。

我已经设置了我的程序的 main() 函数来接受这样的命令行参数:

int main(int argc, char* argv[])

if(argc < 5)
    
        printf("Not enough input parameters!\n");
        printf("Usage:\n");
        printf("'program' lamda1 lamda2 Attraction_Range Order_Param_Range\n");
        return 0;
    
    else
    
        lamda1 = atof(argv[1]);
        lamda2 = atof(argv[2]);
        attRange = atof(argv[3]);
        oRange = atof(argv[4]);
        cout << lamda1 << lamda2 << attRange << oRange << endl;
    

但是,当我在 Visual Studio 中点击 Ctrl+F5 或在 Qt Creator 中点击 Ctrl+R 进行编译时,代码分支到 if 语句,因为我无法输入任何参数。我能否以某种方式将初始参数传递给我的程序,以便在编译时立即转到上述示例的else 部分?

如果这是一个重复/错误的问题,我很抱歉,但我什至不知道如何在网上搜索这个问题。

【问题讨论】:

您为什么要这样做?如果您要在编译时执行,则最好根本不传递它们。 Qt 是一个框架。 Qt Creator 是一个 IDE。这些都不是编译器。您的问题根本不是跨平台的。您对两个不同的 IDE 提出了相同的问题。这不是一个好主意。 @mwerschy:是的,这是真的。我只是认为这会节省一些时间,因为现在我必须导航到生成的可执行文件并在powershell/ bash 中键入命令。 @Mat:你当然是对的。术语仍然让我难以理解...... 那么你仍然需要运行时,你只需要 IDE 为你做这件事。那么@Riateche 有正确的答案。 【参考方案1】:

在 Visual Studio 中:How could I run a project with some parameters in Visual Studio?

在 Qt Creator 中:QtCreator and Command Line Arguments

【讨论】:

以上是关于在编译时将参数传递给主函数的主要内容,如果未能解决你的问题,请参考以下文章

使用它时将参数传递给perl包

将整数参数传递给 C 中的主函数

如何将参数传递给快速完成的函数

如何通过单击 PyQt 中的按钮将参数传递给函数?

您可以在创建时将参数传递给 AngularJS 控制器吗?

您可以在创建时将参数传递给 AngularJS 控制器吗?