c++ - 如何将一个 cpp 文件中的 void 函数的值传递给另一个 cpp 文件中的另一个 void 函数?

标签 c++ c visual-c++ void extern

我是编程新手,但我必须为我的项目做这件事。

在 Visual C++ 6.0 中,我试图将计算值从一个函数发送到另一个 cpp 文件中的另一个函数。 但是,当我尝试编译时出现以下错误:

Creating library Debug/usradd.lib and object Debug/usradd.exp addrxn.obj : error LNK2001: unresolved external symbol "float * Gamma" (?Gamma@@3PAMA) ..\debug\usradd.dll : fatal error LNK1120: 1 unresolved externals

我该如何解决这个问题?谢谢。

这是我尝试过的简单代码版本。 我喜欢将 Gamma 矩阵从 addk.cpp 传递到 addrxn.cpp,如下所示。 谢谢。

//callccx.h
//declare "Gamma" array
extern Gamma[23];

//addk.cpp
void addk(float *y, float *x, double t, double p, float *xkv)
{
float Gamma[1] = 2000*t;
.
.
.
float Gamma[23] = 2300*t;

for(int i=0;int<23;i++)
{
xkv[i] = 200*t/p*Gamma[i];
}
return;
}

//addrxn.cpp

int addrxn0(const int nUopID, const int nRxnID, const int nComponents, 
    const double fTemperature,  const double fPressure, const double fRPM, 
    const double fBetaFac, const double fFreqFac, const double fExpActE, 
    const double *C, const double *Pi, const double *fStoich, 
    const double *fExponent, const double *fAdsFac, const double *fAdsE, 
    const double *fAdsExp, double *pRateForm)
{
    //Arhenius
    double rate=fExpActE*fFreqFac*Gamma[1]/Gamma[2];
    int iComp;
    for(iComp=0;iComp<nComponents;iComp++)
    {
        if(fStoich[iComp] < 0)
        {   //This is a reactant.
            if(fExponent[iComp] == 0.0)
                rate*=pow(C[iComp], -fStoich[iComp]);   //Use stoich as exponent
            else
                rate*=pow(C[iComp], fExponent[iComp]);  //Use exponent as given
        }
    }

    //Final rate of formation
    (*pRateForm)=rate*
    return 0;
}

最佳答案

extern 声明需要一个类型:

extern float Gamma[23];

您的示例代码:

float Gamma[1] = 2000*t;

没有意义。您是否在这里声明一个包含一个元素的 float 组?你的意思可能是:

Gamma[1] = 2000 * t;

无论如何,您的链接错误告诉您 Gamma 需要在某处定义,可能在另一个文件中。有点像

float Gamma[23];

关于c++ - 如何将一个 cpp 文件中的 void 函数的值传递给另一个 cpp 文件中的另一个 void 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59049385/

相关文章:

c++ - 随着计算的进行,我的 C++ 程序变慢了

c - 设置指向char数组第n个地址的指针

c++ - OpenCV错误使用逆

c - float 变量初始化为 0.0 时,float 值是否保证为 0?

c++ - 字符 * 编码

c++ - 使用 TransparentBlt

c++ - 获取投影图像像素位置

c++ - Meego Nokia N950 是否支持 C++ QML 绑定(bind)?

c++ - 为什么将函数名用作函数指针等同于将地址运算符应用于函数名?

ios - 为 iPhone 编译 GLib?