我希望你们中的一些代码天才可以帮助像我这样的编码受损的个人。我必须创建这个程序,将时间戳放在我之前创建的另一个程序上。现在我正在尝试使用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特别的错误。
任何帮助都将不胜感激...... expandtime函数假设接收gettimeofday的值,该值存储在我认为的一个包含的头文件中的某个结构中。
答案 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)
{
}