0

私はあなたのコードの天才の何人かが私のようなコーディング障害のある個人を助けるかもしれないことを望んでいました。以前に作成した別のプログラムにタイムスタンプを付けるこのプログラムを作成する必要があります。現在、ImはC ++でgettimeofday関数を使用して時間を取得しようとしています(これはUnixで実行しています)。

とにかく、2つの特定のエラーが発生し続けることを除いて、コードの小さなセクションをコンパイルする準備ができています。おそらく誰かがその点で私を助けてくれて、コードがこれまでどのように見えるかについてアドバイスをくれたら、それは素晴らしいことです...

#include <curses.h>
#include <sys/time.h>
#include <time.h>

ExpandedTime* localTime(struct timeval* tv, ExpandedTime* etime);

struct ExpandedTime
{
    double et_usec;
    double et_sec;
    double et_min;
    double et_hour;

};

int main()
{
    struct timeval tv;
    struct ExpandedTime etime;
    gettimeofday(&tv, NULL);
    localTime(tv, ExpandedTime);

}

ExpandedTime* localTime(struct timeval* tv, ExpandedTime* etime)
{

}

基本的に今は、gettimeofdayを適切に使用し、tvとして定義されたtimeval構造と拡張されたtime構造を実際のlocaltime関数に渡そうとしています。ただし、localtime関数を呼び出す33行目で2つの特定のエラーが発生します。

  1. このスコープではlocaltimeは宣言されていません
  2. ')'トークンの前に期待される一次式

任意の助けをいただければ幸いです......expandedtime関数は、私が信じているインクルードされたヘッダーファイルの1つにある構造に格納されているgettimeofdayの値を受け取ることを想定しています。

4

2 に答える 2

2
ExpandedTime* localTime(struct timeval* tv, ExpandedTime* etime);

この時点で、コンパイラは何ExpandedTimeであるかわかりません。これを宣言の後に移動する必要があります。

また、あなたは持っています:

localTime(tv, ExpandedTime);

それは次のようになります。

localTime(tv, &etime);
于 2013-03-13T00:56:55.050 に答える
0

構造体の呼び出しを簡単にするために、構造体でtypedefを使用することをお勧めします。(正直なところ、上記をコンパイルすることはできませんでした。)

通常、どこでも「strutExpandedTime」を使用する必要があると思います。

「ExpandedType」を構造体として単独で使用する方法を私が知っている唯一の方法は、次のようにそれをtypedefすることです。

typedef struct expanded_time_struct {
// your struct's data
} ExpandedTime;

したがって、あなたの場合、次のようなものです。

typedef struct ExpandedTime_struct
{
    double et_usec;
    double et_sec;
    double et_min;
    double et_hour;

} ExpandedTime;

ExpandedTime* localTime(struct timeval* tv, ExpandedTime* etime);
int main()
{
    struct timeval tv;
    ExpandedTime etime;
    gettimeofday(&tv, NULL);
    localTime(&tv, &etime);

}

ExpandedTime* localTime(struct timeval* tv, ExpandedTime* etime)
{

}
于 2013-03-13T07:01:35.120 に答える