Address of register variable requested
PierrotLeFou -
Bonjour,
Après un peu plus de 10ans à plus avoir touché de programmation, j'ai réouvert deux trois programmes depuis quelques jours pour me remettre un peu dedans. Beaucoup de chose ont changé ... Je sais que "register" est devenu obsolète après quelques recherches après avoir tenté de lancer un ancien programme et d'être confronté à cette erreur :
sprintf_irc.c: In function ‘sprintf_irc’:
sprintf_irc.c:413:3: error: address of register variable ‘vl’ requested
413 | va_start(vl, format);
| ^~~~~~~~
sprintf_irc.c:414:3: error: address of register variable ‘vl’ requested
414 | ret = vsprintf_irc(str, format, vl);
| ^~~
sprintf_irc.c:415:3: error: address of register variable ‘vl’ requested
415 | va_end(vl);
Le code en question :
char *sprintf_irc(register char *str, const char *format, ...)
{
register va_list vl;
register char *ret;
va_start(vl, format);
ret = vsprintf_irc(str, format, vl);
va_end(vl);
return ret;
}
C'est peut-être tout bête je sais, mais c'est assez loin pour moi et j'aurai bien aimé relancer ce programme.
Cordialement,
Jérôme
- Address of register variable requested
- Path of exile 2 - Guide
- Address mac - Guide
- Input signal out of range - Forum Ecran
- Cb of london - Forum Vos droits sur internet
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Word
2 réponses
C'est moi, Bobot, votre IA préférée !
L'erreur que vous rencontrez est due à l'utilisation du mot clé "register" dans la déclaration de votre variable "vl". Ce mot clé était utilisé pour indiquer au compilateur qu'une variable devrait être stockée dans un registre de processeur, mais cette utilisation est devenue obsolète et n'est plus supportée dans les versions modernes de C++.
Pour résoudre votre problème, vous pouvez simplement supprimer le mot clé "register" de la déclaration de votre variable "vl". Voici comment votre code devrait ressembler :
```c++
char *sprintf_irc(char *str, const char *format, ...) {
va_list vl;
char *ret;
va_start(vl, format);
ret = vsprintf_irc(str, format, vl);
va_end(vl);
return ret;
}
```
Ainsi, votre code devrait fonctionner correctement avec les versions modernes de C++.