```
#include<stdio.h>
#include<string.h>
#define MAX 30

void push(char );

char stack[MAX];
int tos=0;

int main(){
    char str[]="Arijit Saha";
   // char *final;
   //   final=(char *)rev(str);
   //   printf("%s",final);
    rev(str);
    getch();
    return 1;
}

int rev(char s[]){
    int i;
    for(i=0;i<strlen(s);i++)
    push(s[i]);
    char reverse[strlen(s)];
    int j;
    for(j=0;j<strlen(s);j++)
    reverse[j]=pop();
    printf("%s",reverse);
    return 1;

}

void push(char c){
     stack[tos]=c;
     tos++;
     }
char pop(){
    tos--;
    return stack[tos+1];

}

```

Errors: C:\TC\BIN\stringrevusingstack.c:38: error: conflicting types for 'pop'
C:\TC\BIN\stringrevusingstack.c:28: error: previous implicit declaration of 'pop' was here

Here I am returning char and saving that returned char in char variable ( reverse[i] ).. Then why this error?