我希望你们中的一些编码天才可以帮助像我这样的编码障碍者。我必须创建这个程序,它把时间戳放在我之前创建的另一个程序上。现在我正在尝试使用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的时间结构和扩展的时间结构到实际的localtime函数....然而,第33行,在我调用localtime函数的地方,给了我2个特别的错误。
- localtime未在此作用域中声明
- 在')'标记前期望的主表达式
任何帮助将不胜感激......expdedtime函数应该接收gettimeofday的值,该值存储在包含的头文件中的某个结构中,我相信。
ExpandedTime* localTime(struct timeval* tv, ExpandedTime* etime);
此时,编译器不知道ExpandedTime
是什么。你必须把它移到声明的后面。
还有:
localTime(tv, ExpandedTime);
应该是:
localTime(tv, &etime);
我建议对您的结构使用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)
{
}