2015-05-08 4 views
0

Я пытаюсь загрузить решение в OJ, судья использует GCC Я получил следующие ошибки и не имел представления о них.Несколько ошибок компиляции при использовании GCC

error: expected ‘:’, ‘,’, ‘;’, ‘}’ or ‘__attribute__’ before ‘{’ token 
void insert(int in){ 
^ 

In function ‘main’: 
error: ‘struct mymultiset_int’ has no member named ‘insert’ 
x.insert(t); 
^ 

error: ‘struct mymultiset_int’ has no member named ‘getmax’ 
printf("%d\n",x.getmax()); 
^ 
error: ‘struct mymultiset_int’ has no member named ‘_delete’ 
x._delete(0); 
^ 

Мой код выглядит следующим образом:

#include<stdlib.h> 
#include<stdio.h> 
#include<string.h> 
int t; 
#define swap(a,b) t=b,b=a,a=t 
/* 
when using swap, I use format like swap(x,y); or swap(x,y), 
*/ 

struct mymultiset_int{ 
    int e[100000],end; 
    void insert(int in){...} 
    int getmax(){ return e[0]; } 
    void _delete(int i){...} 
}x; 
int main(){ 
    x.end=0;memset(x.e,0,sizeof(x.e)); 
    int N,t;scanf("%d",&N); 
    char i[2]; 
    while (N--){ 
     scanf("%s",i); 
     if (i[0]=='A'){ 
      scanf("%d",&t); 
      x.insert(t); 
     } 
     else{ 
      printf("%d\n",x.getmax()); 
      x._delete(0); 
     } 
    } 
} 
+5

Вы не можете использовать функции в 'struct' в C –

+0

#define swap (a, b) t = b, b = a, a = t должен быть swap (a, b) t = b; b = а; а = т; – Brian

+1

Является ли C не C++. Struct не похож на класс ... – LPs

ответ

1

вы не можете определить функцию в структуре в С.

Но это возможно в C++.

Смежные вопросы