-5
/* c++ file */
extern "C"
{
#include "Param.h"
#include "manager.h"      
}
void Manager::Init(){

    struct config pParam;   
    memset(&pParam, 0, sizeof(pParam));

    pParam.pulse = 123;
    pParam.rotation = 567;

    Parameters(&pParam);
}

/* c file */
int max_pulse = 0, rotation = 0;
void Parameters(const struct config *p_param)
{
    max_pulse   = p_param->pulse; // assign the wrong data here
    rotation    = p_param->rotation; // assign the wrong data here
}

それは非常に奇妙な問題です。

configはParam.hで定義され、managerクラスはmanager.hファイルで定義されます。

コードを実行した後、max-pulse=567およびrotation=0を取得しています。このコードでこれが発生している理由がわかりません。Visual Studio2008Expressを使用しています。

誰かがこの問題を解決するのを手伝ってもらえますか?

4

1 に答える 1

0

おそらく、メンバーを初期化しているときに引数を使用Parameters()して関数を呼び出しているため、エラーが発生しています。pParamp_param

于 2012-12-05T17:18:34.227 に答える