首页 > 解决方案 > “'CLOCK_PER_SEC' 未在此范围内声明”错误,即使包含

问题描述

即使在包含 time.h 之后,我也会收到“'CLOCK_PER_SEC' 未在此范围内声明”错误。我是 C++ 的新手,所以这与简单的错误有关,但很遗憾我无法弄清楚。请帮我。

#include <stdio.h>
#include <stdlib.h>

#include <time.h>


#define SIZE 1024*1024*1
#define REPEAT 10

using namespace std;

....... 

int main()
{

    const int n = SIZE;


    int* arr = (int*)malloc(n * sizeof(int));
    for (int i = 0; i < n; i++)
    {       
        arr[i] = n - i;
    }


    double totalSeiralTime = 0;
    clock_t clock_s, clock_e;
    for(int i = 0; i < REPEAT ; i++)
    {
        clock_s = clock();

        radixsort(arr, n);

        clock_e = clock();
        double cpu_time_used = ((double)(clock_e-clock_s))/CLOCK_PER_SEC; 
        printf("gpu parallel time : %f\n", cpu_time_used);  
        totalSeiralTime += cpu_time_used;
    }
    printf("cpu serial time mean : %f\n", totalSeiralTime / REPEAT);
  return 0;

}

我如何编译

gcc -std=c++11 ./cpuRadix.cpp -o ./cpuRadix.out
./cpuRadix.out

我也试过没有 std 选项。但它并没有改变。

标签: c++

解决方案


正确的常数是CLOCKS_PER_SEC

同样在 c++ 中,正确的标题名称是:

#include <cstdio>
#include <cstdlib>
#include <ctime>

(大多数实现这无关紧要,但这是标准要求您必须包含的内容)


推荐阅读