Chi mi aiuta a capire perchè non stampa la stringa al contrario?
il programma viene compilato, ma non stampa la stringa inversa

codice:
#include <stdio.h> 
#include <string.h> 
#include <stdlib.h>  
#define LUNGHEZZA 10  

char stringa[LUNGHEZZA]; 
int i;   

void invertistringa(char stringa[]){      

for (i=(unsigned long) strlen(stringa);i=0;i--)      
{        
putchar(stringa[i]);          
}            
}           

int main() {     
printf ("Inserire stringa da invertire\n");     
gets(stringa);     
if (strlen(stringa)>LUNGHEZZA)     
printf("errore stringa superiore alla lunghezza massima\n");     
else     
invertistringa(stringa);     
return 0;     }