c++ - 当我们在另一个程序中调用该程序时更改程序中常量参数的值

标签 c++

我有一个 C++ 程序。在这个程序的开头,我定义了一些这样的参数,我在我的代码中使用了这些参数,我们称之为:“first.cpp”;

#define column  6    //number of columns in the mat1
#define row  5     //number of rows in the mat1 
int main(){
...
}

现在我想在另一个名为“second.cpp”的程序中执行这个“first.cpp”程序。 有谁知道如何在 second.cpp 中调用 first.cpp 以及我应该如何初始化 second.cpp 中的上述 2 个参数(列和行)? 实际上,我想在另一个程序(second.cpp)中运行一个 c++ 程序(first.cpp)几次,每次我都想更改(列和行)的值,这怎么可能? ... 事实上,我有:

#define column  6    
#define row  5   
int func1(int a[][column],int b[][row]);  
int main(){
...
}

如您所见,我在 func1 中定义了一个二维数组作为参数,并且根据 c 规则,我有必要为第二个维度使用一些值。这就是为什么我在 main() 之前定义这些参数...并且由于某些限制我不喜欢用指针定义二维数组...这就是原因...

最佳答案

how it could be possible?

只要您坚持使用#define 预处理器常量,这是不可能的。这些在你编译后被固定到你的 first.cpp 中。

您可以做什么(如 @NickLampcomment 中所述):提供这些常量作为命令行参数。

如果没有给出命令行参数,您可以考虑将它们设置为默认值。

关于c++ - 当我们在另一个程序中调用该程序时更改程序中常量参数的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35730263/

相关文章:

c++ - 具有确定性程序的未定义行为

c++ - 抛出匿名异常子类

c++ - 如何检查值是否在列表中

c++ - 安全跨线程信号/槽 C++

c++ - 如何减少 constexpr 函数的编译时间?

c++ - QNetworkAccessManager稍后在添加请求时删除

c++ - 快速实现大型整数计数器(在C/C++中)

c++ - 在由换行符分隔的字符串中查找特定文本

c++ - 模板特化 : Can we partially implement the special cases

c++ - 大量 Unresolved external symbol 错误