0

我希望你们中的一些编码天才可以帮助像我这样的编码障碍者。我必须创建一个在我之前创建的另一个程序上放置时间戳的程序。现在我正在尝试使用 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. 本地时间未在此范围内声明
  2. ')' 标记之前的预期主表达式

任何帮助将不胜感激......expandedtime函数假设接收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 来简化调用它们。(老实说,我无法编译上述内容。)

我认为,通常情况下,您需要在任何地方使用“strut ExpandedTime”。

我知道如何单独使用“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 回答