PpHd (./159) :
case MAY_POW_T:
; may_t base = may_expand_recur (MAY_AT(x, 0));
Noter la présence du ';' avant le type 'may_t'. Sans çà, ca compile pas
(ISO C 99).
Il faut utiliser des accolades quand tu déclares une variable dans un
case. Là, tu as un autre problème: la portée de ta variable s'étend jusqu'à la fin de ton
switch! En particulier, si tu essaies de faire ça avec un VLA C99 ou un non-POD C++, tu vas avoir une erreur (sauf si c'est le dernier
case de ton
switch).
La seule utilisation du mot clé 'auto' que je connaisse (et une GNU C extension bien pratique).
Utilisation inutile parce que ta fonction imbriquée n'a pas besoin d'être déclarée à l'avance, et
auto n'est nécessaire que pour les prototypes de fonctions imbriquées, pas pour les définitions.
typedef int T[3][3];
int g(const T x);
AMHA, ce n'est pas du tout ce que tu veux, tu veux probablement un
const int x[3][3], c'est-à-dire que tes
données dans le tableau sont
const, pas le tableau
x lui-même.