Bon fondamentalement là on est un peu hors sujet et c'est pas trop ce qui m'intéresse, mais pour ne pas laisser le débat ouvert :
Dans mon idée, quand on déclare une variable, on lui donne un type ; au moment de l'exécution la machine réservera donc une portion de mémoire de la taille déterminée par le type choisi, pour cette variable.
Après ce qu'on y met ou pas n'est pas tellement la question ici, mais l'overflow apparait lorsqu'on essai de mettre quelque chose de trop "gros" dans la variable, par rapport au type qu'on avait déterminé précédemment, par exemple, le code :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #include <iostream>
using namespace std;
int main()
{
int x;
cout << "Choisissez une valeur a stocker dans la variable svp" << endl;
cin >> x;
cout << "La variable contient : " << x << endl;
return 0;
} |
Donne ceci :
1 2 3 4 5 6 7 8 9 10 11
| $ g++ -o exec ./temp.cpp
$ ./exec
Choisissez une valeur a stocker dans la variable svp
7876
La variable contient : 7876
$ ./exec
Choisissez une valeur a stocker dans la variable svp
45432222346
La variable contient : -1073742504 |
Que ce soit le parseur ou autre chose qui détermine comment c'est fait ne m'importe pas vraiment. La raison pour laquelle j'ai ouvert ce topic c'est pour savoir si au moment de l'exécution du programme on pouvait choisir le type d'une variable.
On m'a répondu : non, la variable est typée par le compilateur. Fin du débat. Merci quand même de ton apport HanLee.
Partager