一些帮助使用结构,引用和gettimeofday函数

时间:2013-03-13 00:55:32

标签: c gettimeofday

我希望你们中的一些代码天才可以帮助像我这样的编码受损的个人。我必须创建这个程序,将时间戳放在我之前创建的另一个程序上。现在我正在尝试使用C ++中的gettimeofday函数来获取时间(我们在Unix btw中这样做)。

无论如何我有一小段代码准备好编译,除了我不断得到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结构和扩展的时间结构传递给实际的localtime函数....但是第33行,我调用localtime函数给我2特别的错误。

  1. 本范围未在此范围内声明
  2. ')'令牌
  3. 之前的预期主要表达

    任何帮助都将不胜感激...... expandtime函数假设接收gettimeofday的值,该值存储在我认为的一个包含的头文件中的某个结构中。

2 个答案:

答案 0 :(得分:2)

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

此时,编译器不知道ExpandedTime是什么。您必须在声明后将其移至。

你也有:

localTime(tv, ExpandedTime);

应该是:

localTime(tv, &etime);

答案 1 :(得分:0)

我建议在你的结构中使用typedef来简化它们的调用。 (老实说,我无法通过上述方法进行编译。)

通常,你需要在任何地方使用“strut ExpandedTime”,我想。

我知道如何单独使用“ExpandedType”作为结构的唯一方法是键入它,如:

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)
{

}