首页 新闻 会员 周边 捐助

新人求教 错误matlab\timer.h(15) : error C2447: “{”: 缺少函数标题(是否是老式的形式表?)

0
悬赏园豆:10 [已关闭问题] 关闭于 2017-10-30 19:24

timer.h文件源码如下

#ifndef _TIMER_H_
#define _TIMER_H_

#include <string>
#include <sstream>
//#include <sys/time.h> //windows下的time.h中没有timeval定义
#include<windows.h> //windows下代替<sys/time.h>
#include<time.h> //windows下代替<sys/time.h>


using namespace std;


//windows下没有gettimeofday函数,从网上找的一个替代函数
int gettimeofday(struct timeval *tp, void *tzp)  //第15行
{
time_t clock;
struct tm tm;
SYSTEMTIME wtm;
GetLocalTime(&wtm);
tm.tm_year = wtm.wYear - 1900;
tm.tm_mon = wtm.wMonth - 1;
tm.tm_mday = wtm.wDay;
tm.tm_hour = wtm.wHour;
tm.tm_min = wtm.wMinute;
tm.tm_sec = wtm.wSecond;
tm. tm_isdst = -1;
clock = mktime(&tm);
tp->tv_sec = clock;
tp->tv_usec = wtm.wMilliseconds * 1000;
return (0);
}


class timer {

public:
int gettimeofday(struct timeval *tp, void *tzp);
timer(string timer_name) {
name = timer_name;
total_time = 0;
calls = 0;
}

~timer() {};

void tic() {
struct timeval tv;
gettimeofday(&tv, NULL);
last_time = (double)tv.tv_sec + 1e-6*(double)tv.tv_usec;
calls++;
}

void toc() {
struct timeval tv;
gettimeofday(&tv, NULL);
double cur_time = (double)tv.tv_sec + 1e-6*(double)tv.tv_usec;
total_time += cur_time - last_time;
}

const char *msg() {
ostringstream oss;
oss << "timer '" << name
<< "' = " << total_time << " sec in "
<< calls << " call(s)";
return oss.str().c_str();
}

void mexPrintTimer() {
mexPrintf("timer '%s' = %f sec in %d call(s)\n", name.c_str(), total_time, calls);
}

double getTotalTime() {
return total_time;
}

private:
string name;
int calls;
double last_time;
double total_time;
};

#endif

c++
昊昊903的主页 昊昊903 | 菜鸟二级 | 园豆:214
提问于:2017-10-30 08:08
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册