Bonjour,
je suis en train de jouer avec le feu en transtypant des pointeur en fonctions en int et vice-versa, et pendant mes expériences, je suis tombé sur une erreur de compilation qui ne semble pas très logique :
Voici un bout de code qui compile sans problème :Mais si je change le + en * ou ^ , j'ai une "error: initializer element is not constant".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 void foo ( void ) {} void bar ( void ) {} int p = (int)foo + 3 ;
Ou si j'introduit un autre pointeur de fonction int p = (int)foo + (int)bar ;, j'ai la même erreur.
Pourquoi râle-t-il alors qu'il n'y a que des constantes dans les calculs ?
Pour info, j'ai les mêmes erreurs avec gcc et Visual Studio.
Partager