Pour ceux qui se rappellent d'une discussion d'il y a presque
deux mois... Après communications avec BS, qui a lui-même dû
demander sur le « C++ core language mailing list », il semble
que la modification suivante a été apportée à C99, ce qui a
probablement influencé le comité de C++98...
- En C89 et en C++ pré-standard, une constante littérale sans
suffixe ni base (par exemple 12345 ou 3456789012) pouvaient
être automatiquement de type int, long int ou unsigned long
int, selon le premier type possible acceptant la valeur.
- En C99, la liste est passée à int, long int et long long int.
(pas de unsigned, afin de permettre des constantes signées
dans des types encore plus grands, permis par C99).
- En ISO C++, il n'y a que int et long int, probablement pour
des raisons de compatibilité. Si la constante n'entre pas
dans un long, il y a comportement indéfini.
Donc 3000000000 donne un comportement indéfini si les long
ont 32 bits, par contre 3000000000U est tout à fait correct.
--
Michel Michaud mm@gdzid.com
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gabriel Dos Reis
"Michel Michaud" writes:
| Pour ceux qui se rappellent d'une discussion d'il y a presque | deux mois... Après communications avec BS, qui a lui-même dû | demander sur le « C++ core language mailing list », il semble | que la modification suivante a été apportée à C99, ce qui a | probablement influencé le comité de C++98...
c'était donc toi le famuex « user » dont il était question tout l'heure :-)
[...]
| Donc 3000000000 donne un comportement indéfini si les long | ont 32 bits, par contre 3000000000U est tout à fait correct.
De toute façon des constantes magiques comme ça doivent être punies par la loi :-p
-- Gaby
"Michel Michaud" <mm@gdzid.com> writes:
| Pour ceux qui se rappellent d'une discussion d'il y a presque
| deux mois... Après communications avec BS, qui a lui-même dû
| demander sur le « C++ core language mailing list », il semble
| que la modification suivante a été apportée à C99, ce qui a
| probablement influencé le comité de C++98...
c'était donc toi le famuex « user » dont il était question tout
l'heure :-)
[...]
| Donc 3000000000 donne un comportement indéfini si les long
| ont 32 bits, par contre 3000000000U est tout à fait correct.
De toute façon des constantes magiques comme ça doivent être punies par
la loi :-p
| Pour ceux qui se rappellent d'une discussion d'il y a presque | deux mois... Après communications avec BS, qui a lui-même dû | demander sur le « C++ core language mailing list », il semble | que la modification suivante a été apportée à C99, ce qui a | probablement influencé le comité de C++98...
c'était donc toi le famuex « user » dont il était question tout l'heure :-)
[...]
| Donc 3000000000 donne un comportement indéfini si les long | ont 32 bits, par contre 3000000000U est tout à fait correct.
De toute façon des constantes magiques comme ça doivent être punies par la loi :-p
-- Gaby
Michel Michaud
Dans news:, Gabriel Dos
"Michel Michaud" writes:
Pour ceux qui se rappellent d'une discussion d'il y a presque deux mois... Après communications avec BS, qui a lui-même dû demander sur le « C++ core language mailing list », il semble que la modification suivante a été apportée à C99, ce qui a probablement influencé le comité de C++98...
c'était donc toi le famuex « user » dont il était question tout
Fameux ? J'ai pas vu tout le message de BS... :-) En fait, comme c'est James qui a originellement regardé le standard, c'est lui qui devrait être fameux (moi je n'ai que remarqué la petite erreur dans le livre de BS).
l'heure :-)
[...]
Donc 3000000000 donne un comportement indéfini si les long ont 32 bits, par contre 3000000000U est tout à fait correct.
De toute façon des constantes magiques comme ça doivent être punies par la loi :-p
Mais ça ne change rien à
const unsigned long mettreUnBeauNomIci= 3456789012; // Indéfini
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Dans news:flr80f2ad8.fsf@sel.cmla.ens-cachan.fr, Gabriel Dos
"Michel Michaud" <mm@gdzid.com> writes:
Pour ceux qui se rappellent d'une discussion d'il y a presque
deux mois... Après communications avec BS, qui a lui-même dû
demander sur le « C++ core language mailing list », il semble
que la modification suivante a été apportée à C99, ce qui a
probablement influencé le comité de C++98...
c'était donc toi le famuex « user » dont il était question tout
Fameux ? J'ai pas vu tout le message de BS... :-) En fait, comme
c'est James qui a originellement regardé le standard, c'est lui
qui devrait être fameux (moi je n'ai que remarqué la petite
erreur dans le livre de BS).
l'heure :-)
[...]
Donc 3000000000 donne un comportement indéfini si les long
ont 32 bits, par contre 3000000000U est tout à fait correct.
De toute façon des constantes magiques comme ça doivent être punies
par la loi :-p
Mais ça ne change rien à
const unsigned long mettreUnBeauNomIci= 3456789012; // Indéfini
--
Michel Michaud mm@gdzid.com
http://www.gdzid.com
FAQ de fr.comp.lang.c++ :
http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Pour ceux qui se rappellent d'une discussion d'il y a presque deux mois... Après communications avec BS, qui a lui-même dû demander sur le « C++ core language mailing list », il semble que la modification suivante a été apportée à C99, ce qui a probablement influencé le comité de C++98...
c'était donc toi le famuex « user » dont il était question tout
Fameux ? J'ai pas vu tout le message de BS... :-) En fait, comme c'est James qui a originellement regardé le standard, c'est lui qui devrait être fameux (moi je n'ai que remarqué la petite erreur dans le livre de BS).
l'heure :-)
[...]
Donc 3000000000 donne un comportement indéfini si les long ont 32 bits, par contre 3000000000U est tout à fait correct.
De toute façon des constantes magiques comme ça doivent être punies par la loi :-p
Mais ça ne change rien à
const unsigned long mettreUnBeauNomIci= 3456789012; // Indéfini
-- Michel Michaud http://www.gdzid.com FAQ de fr.comp.lang.c++ : http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ/
Gabriel Dos Reis
"Michel Michaud" writes:
| Dans news:, Gabriel Dos | > "Michel Michaud" writes: | > | >> Pour ceux qui se rappellent d'une discussion d'il y a presque | >> deux mois... Après communications avec BS, qui a lui-même dû | >> demander sur le « C++ core language mailing list », il semble | >> que la modification suivante a été apportée à C99, ce qui a | >> probablement influencé le comité de C++98... | > | > c'était donc toi le famuex « user » dont il était question tout | | Fameux ? J'ai pas vu tout le message de BS... :-) En fait, comme | c'est James qui a originellement regardé le standard, c'est lui | qui devrait être fameux (moi je n'ai que remarqué la petite | erreur dans le livre de BS).
BS venait de relayer la question au comité en précisant que cela a été poser par un utilisateur (i.e. opposé à un membre du comité).
| > l'heure :-) | > | > [...] | > | >> Donc 3000000000 donne un comportement indéfini si les long | >> ont 32 bits, par contre 3000000000U est tout à fait correct. | > | > De toute façon des constantes magiques comme ça doivent être punies | > par la loi :-p | | Mais ça ne change rien à | | const unsigned long mettreUnBeauNomIci= 3456789012; // Indéfini
C'est la même chose : le machin à droite devrait être puni par la loi.
-- Gaby
"Michel Michaud" <mm@gdzid.com> writes:
| Dans news:flr80f2ad8.fsf@sel.cmla.ens-cachan.fr, Gabriel Dos
| > "Michel Michaud" <mm@gdzid.com> writes:
| >
| >> Pour ceux qui se rappellent d'une discussion d'il y a presque
| >> deux mois... Après communications avec BS, qui a lui-même dû
| >> demander sur le « C++ core language mailing list », il semble
| >> que la modification suivante a été apportée à C99, ce qui a
| >> probablement influencé le comité de C++98...
| >
| > c'était donc toi le famuex « user » dont il était question tout
|
| Fameux ? J'ai pas vu tout le message de BS... :-) En fait, comme
| c'est James qui a originellement regardé le standard, c'est lui
| qui devrait être fameux (moi je n'ai que remarqué la petite
| erreur dans le livre de BS).
BS venait de relayer la question au comité en précisant que cela a été
poser par un utilisateur (i.e. opposé à un membre du comité).
| > l'heure :-)
| >
| > [...]
| >
| >> Donc 3000000000 donne un comportement indéfini si les long
| >> ont 32 bits, par contre 3000000000U est tout à fait correct.
| >
| > De toute façon des constantes magiques comme ça doivent être punies
| > par la loi :-p
|
| Mais ça ne change rien à
|
| const unsigned long mettreUnBeauNomIci= 3456789012; // Indéfini
C'est la même chose : le machin à droite devrait être puni par la loi.
| Dans news:, Gabriel Dos | > "Michel Michaud" writes: | > | >> Pour ceux qui se rappellent d'une discussion d'il y a presque | >> deux mois... Après communications avec BS, qui a lui-même dû | >> demander sur le « C++ core language mailing list », il semble | >> que la modification suivante a été apportée à C99, ce qui a | >> probablement influencé le comité de C++98... | > | > c'était donc toi le famuex « user » dont il était question tout | | Fameux ? J'ai pas vu tout le message de BS... :-) En fait, comme | c'est James qui a originellement regardé le standard, c'est lui | qui devrait être fameux (moi je n'ai que remarqué la petite | erreur dans le livre de BS).
BS venait de relayer la question au comité en précisant que cela a été poser par un utilisateur (i.e. opposé à un membre du comité).
| > l'heure :-) | > | > [...] | > | >> Donc 3000000000 donne un comportement indéfini si les long | >> ont 32 bits, par contre 3000000000U est tout à fait correct. | > | > De toute façon des constantes magiques comme ça doivent être punies | > par la loi :-p | | Mais ça ne change rien à | | const unsigned long mettreUnBeauNomIci= 3456789012; // Indéfini
C'est la même chose : le machin à droite devrait être puni par la loi.
-- Gaby
Fabien LE LEZ
On 10 Nov 2003 22:57:47 +0100, Gabriel Dos Reis wrote:
| const unsigned long mettreUnBeauNomIci= 3456789012; // Indéfini
C'est la même chose : le machin à droite devrait être puni par la loi.
En gros, tu veux interdire l'initialisation des constantes numériques ? Intéressant... C'est suite à des problèmes gastriques ? ;-)
-- ;-)
On 10 Nov 2003 22:57:47 +0100, Gabriel Dos Reis
<gdr@integrable-solutions.net> wrote:
| const unsigned long mettreUnBeauNomIci= 3456789012; // Indéfini
C'est la même chose : le machin à droite devrait être puni par la loi.
En gros, tu veux interdire l'initialisation des constantes
numériques ? Intéressant... C'est suite à des problèmes gastriques ?
;-)
On 10 Nov 2003 22:57:47 +0100, Gabriel Dos Reis wrote:
| const unsigned long mettreUnBeauNomIci= 3456789012; // Indéfini
C'est la même chose : le machin à droite devrait être puni par la loi.
En gros, tu veux interdire l'initialisation des constantes numériques ? Intéressant... C'est suite à des problèmes gastriques ? ;-)
-- ;-)
Gabriel Dos Reis
Fabien LE LEZ writes:
| On 10 Nov 2003 22:57:47 +0100, Gabriel Dos Reis | wrote: | | >| const unsigned long mettreUnBeauNomIci= 3456789012; // Indéfini | > | >C'est la même chose : le machin à droite devrait être puni par la loi. | | En gros, tu veux interdire l'initialisation des constantes | numériques ? Intéressant...
Non.
| C'est suite à des problèmes gastriques ? ;-)
Rapport?
-- Gaby
Fabien LE LEZ <gramster@gramster.com> writes:
| On 10 Nov 2003 22:57:47 +0100, Gabriel Dos Reis
| <gdr@integrable-solutions.net> wrote:
|
| >| const unsigned long mettreUnBeauNomIci= 3456789012; // Indéfini
| >
| >C'est la même chose : le machin à droite devrait être puni par la loi.
|
| En gros, tu veux interdire l'initialisation des constantes
| numériques ? Intéressant...
| On 10 Nov 2003 22:57:47 +0100, Gabriel Dos Reis | wrote: | | >| const unsigned long mettreUnBeauNomIci= 3456789012; // Indéfini | > | >C'est la même chose : le machin à droite devrait être puni par la loi. | | En gros, tu veux interdire l'initialisation des constantes | numériques ? Intéressant...