J'ajoute, la fonction pile_vide peut prendre en entrée un pointeur const:

int pile_vide(PILE const *p)
{
return p->t[p->sommet]==0 ;
}