2014-03-30 82 views
0

我使用GPX文件上的GPS项目的工作,该代码是在c和我有一个名为Splitdata结构“”:C-错误的期望标识符或“(”前令牌

// Node Structure for storing Splits Data 
typedef struct SplitData { 
    double selevation[100]; 
    double pace[100]; 
    int splitnumber[100]; 
    int mins[100]; 
    int secs[100]; 
}data; 

我然后尝试引用该结构在这个函数:

double calculate_tot_dist(struct node *lh){ 
    double lat1 = 0, lon1 = 0; 
    double pathLen = 0; 
    struct node *ptr = lh; 
    double averagePace = 0; 
    double elevationchange = 0; 
    int kilocounter = 1; 
    int i =0; 


    struct timeStr tm1,tm2; 


    strcpy(startTimeStr, lh->timeString); 

    while(ptr != NULL){ 
     if (lat1 == 0){ 
      // First node 
      lat1 = ptr->lat; 
      lon1 = ptr->lon; 
      elevationchange = ptr->elevation; 
      ptr = ptr->next; 

     }else 
     { 
      pathLen += haversine_m(lat1, lon1, ptr->lat, ptr->lon); 

      if (((int)pathLen/1000) > kilocounter) 
      { 
      // printf("%d", split->splitnumber[i]); 
      data.splitnumber[i] = kilocounter; 
      data.selevation[i] = ptr->elevation; 
      kilocounter++; 
      i++; 
       } 
      lat1 = ptr->lat; 
      lon1 = ptr->lon; 
      elevationchange = ptr->elevation; 
      ptr = ptr->next; 
     } 


    } 

当我试图编译代码我得到一个错误说:“”“(”前 C-错误的期望标识符或令牌

的错误正在报道的线路:

data.splitnumber[i] = kilocounter; 
data.selevation[i] = ptr->elevation; 

任何人都可以看到为什么会这样吗? 谢谢

+0

函数结束括号? – brokenfoot

+0

有人会想象编译器会告诉你行号 –

+1

并缩进你的代码,你很可能会发现错误。 – brokenfoot

回答

2

在这种情况下,'数据'不是一个变量,而是一个SplitData类型(说明参考http://en.wikipedia.org/wiki/Typedef)。如果你想“数据”是一个变量,那么你可以做如下修改:

// Node Structure for storing Splits Data 
typedef struct SplitData { 
    double selevation[100]; 
    double pace[100]; 
    int splitnumber[100]; 
    int mins[100]; 
    int secs[100]; 
}; 

SplitData data; 

或calculate_tot_dist()函数

的范围定义的另一个变量称为数据(参考我做你的代码这里编译https://coderpad.io/968894

相关问题