C gettimeofday无法与GoLang一起正常使用

I've a simple C function which I call from GoLang. In my C function I'm using gettimeofday function. I understand that this function doesn't give accurate time and I'm okay with that as I only need to get some idea. I just want to get the time difference to run a big for loop.When I run the C function from a C program, it works fine. The for loop takes around 3 seconds to finish. But if I call the same function from GoLang, it looks like that it doesn't take any time in the for loop The program finishes immediately.

Here goes my code.

timetest.h

#include <sys/time.h>
#include<stdio.h>


int TimeTest(){
  int i=0;
  int j = 1000000000;
    unsigned long long startMilli=0;
  unsigned long long endMilli=0;
    struct timeval te;

    gettimeofday(&te, NULL);
    startMilli = te.tv_sec*1000LL + te.tv_usec/1000;

    for (i=0; i<1000000000; i++){
        if (j-1 == i){
            printf("matched
");
        }
    }

    gettimeofday(&te, NULL);
    endMilli = te.tv_sec*1000LL + te.tv_usec/1000;

    printf("Start = %d End = %d Total time %d
", startMilli, endMilli, endMilli - startMilli);

    return endMilli - startMilli;
}

test.go

package main

// #include <sys/time.h>
// #include "timetest.h"
import "C"

import (
    "fmt"
)

func main(){
  diff := C.TimeTest()

  fmt.Println(diff)
}

Main.c

#include"timetest.h"

int main(){
  int diff = TimeTest();

  printf("%d
", diff);

  return 0;
}