我正在尝试在C程序中传递指向两个struct timevals
的指针到一个函数中,该函数将输出它们之间的经过时间。然而,即使我解引用这些指针,nvcc仍会抛出错误“表达式必须具有类类型”(这是一个CUDA程序)。以下是来自main()的相关代码:
struct timeval begin, end;
if (tflag) { HostStartTimer(&begin) };
// CUDA Kernel execution
if (tflag) { HostStopTimer(&begin, &end); }
HostStopTimer() 的函数定义:
void HostStopTimer(struct timeval *begin, stuct timeval *end) {
long elapsed;
gettimeofday(end, NULL);
elapsed = ((*end.tv_sec - *begin.tv_sec)*1000000 + *end.tv_usec - *begin.tv_usec);
printf("Host elapsed time: %ldus\n", elapsed);
}
导致错误的代码是对elapsed
进行赋值。我在C语言中使用结构体方面没有太多经验,更不用说将指向结构体的指针传递给函数了,所以我不确定是什么原因导致了错误。