J'ai un petit probleme de comprehension de déclaration de variable dans un
programme en Visual C++.
DWORD dwNameLen : 6
J'ai un petit probleme de comprehension de déclaration de variable dans un
programme en Visual C++.
DWORD dwNameLen : 6
J'ai un petit probleme de comprehension de déclaration de variable dans un
programme en Visual C++.
DWORD dwNameLen : 6
On Tue, 15 Mar 2005 19:22:41 +0100, "Olivier" :J'ai un petit probleme de comprehension de déclaration de
variable dans un programme en Visual C++.
DWORD dwNameLen : 6
Logiquement, il s'agit d'un membre d'une classe. Le ":6"
indique que le membre en question n'occupe que 6 bits.
Exemple :
struct Machin
{
unsigned long x: 7;
unsigned long y: 8;
unsigned long z: 17;
};
Un "Machin" fait 32 bits en tout, bien qu'il ait 3 éléments.
Note que tout ça est hautement non portable (et un peu passé
de mode il me semble).
On Tue, 15 Mar 2005 19:22:41 +0100, "Olivier" <ope@club-internet.fr>:
J'ai un petit probleme de comprehension de déclaration de
variable dans un programme en Visual C++.
DWORD dwNameLen : 6
Logiquement, il s'agit d'un membre d'une classe. Le ":6"
indique que le membre en question n'occupe que 6 bits.
Exemple :
struct Machin
{
unsigned long x: 7;
unsigned long y: 8;
unsigned long z: 17;
};
Un "Machin" fait 32 bits en tout, bien qu'il ait 3 éléments.
Note que tout ça est hautement non portable (et un peu passé
de mode il me semble).
On Tue, 15 Mar 2005 19:22:41 +0100, "Olivier" :J'ai un petit probleme de comprehension de déclaration de
variable dans un programme en Visual C++.
DWORD dwNameLen : 6
Logiquement, il s'agit d'un membre d'une classe. Le ":6"
indique que le membre en question n'occupe que 6 bits.
Exemple :
struct Machin
{
unsigned long x: 7;
unsigned long y: 8;
unsigned long z: 17;
};
Un "Machin" fait 32 bits en tout, bien qu'il ait 3 éléments.
Note que tout ça est hautement non portable (et un peu passé
de mode il me semble).
On Tue, 15 Mar 2005 19:22:41 +0100, "Olivier" :J'ai un petit probleme de comprehension de déclaration de
variable dans un programme en Visual C++.
DWORD dwNameLen : 6
Logiquement, il s'agit d'un membre d'une classe. Le ":6"
indique que le membre en question n'occupe que 6 bits.
Exemple :
struct Machin
{
unsigned long x: 7;
unsigned long y: 8;
unsigned long z: 17;
};
Un "Machin" fait 32 bits en tout, bien qu'il ait 3 éléments.
Note que tout ça est hautement non portable (et un peu passé
de mode il me semble).
On Tue, 15 Mar 2005 19:22:41 +0100, "Olivier" <ope@club-internet.fr>:
J'ai un petit probleme de comprehension de déclaration de
variable dans un programme en Visual C++.
DWORD dwNameLen : 6
Logiquement, il s'agit d'un membre d'une classe. Le ":6"
indique que le membre en question n'occupe que 6 bits.
Exemple :
struct Machin
{
unsigned long x: 7;
unsigned long y: 8;
unsigned long z: 17;
};
Un "Machin" fait 32 bits en tout, bien qu'il ait 3 éléments.
Note que tout ça est hautement non portable (et un peu passé
de mode il me semble).
On Tue, 15 Mar 2005 19:22:41 +0100, "Olivier" :J'ai un petit probleme de comprehension de déclaration de
variable dans un programme en Visual C++.
DWORD dwNameLen : 6
Logiquement, il s'agit d'un membre d'une classe. Le ":6"
indique que le membre en question n'occupe que 6 bits.
Exemple :
struct Machin
{
unsigned long x: 7;
unsigned long y: 8;
unsigned long z: 17;
};
Un "Machin" fait 32 bits en tout, bien qu'il ait 3 éléments.
Note que tout ça est hautement non portable (et un peu passé
de mode il me semble).
Merci pour vos réponses...
Donc si j'ai bien compris,
struct Machin
{
DWORD Truc : 6, Chose : 26;
};
Signifie que la structure Machin à une taille de DWORD, 4 octets,
soit 32 bits et qu'elle est composée de Truc qui fait 6 bits et
Chose qui en fait 26 !!??
Par contre une autre question, Truc = 6 premiers bits, 6 derniers
ou au hasard dans les 32 bits ?
Désolé, je débute...
Merci pour vos réponses...
Donc si j'ai bien compris,
struct Machin
{
DWORD Truc : 6, Chose : 26;
};
Signifie que la structure Machin à une taille de DWORD, 4 octets,
soit 32 bits et qu'elle est composée de Truc qui fait 6 bits et
Chose qui en fait 26 !!??
Par contre une autre question, Truc = 6 premiers bits, 6 derniers
ou au hasard dans les 32 bits ?
Désolé, je débute...
Merci pour vos réponses...
Donc si j'ai bien compris,
struct Machin
{
DWORD Truc : 6, Chose : 26;
};
Signifie que la structure Machin à une taille de DWORD, 4 octets,
soit 32 bits et qu'elle est composée de Truc qui fait 6 bits et
Chose qui en fait 26 !!??
Par contre une autre question, Truc = 6 premiers bits, 6 derniers
ou au hasard dans les 32 bits ?
Désolé, je débute...
Dans le message 42388f8b$0$15287$,
Alors ce n'est vraiment pas le genre de choses qui devrait t'être
utile dans tes programmes...
Dans le message 42388f8b$0$15287$7a628cd7@news.club-internet.fr,
Alors ce n'est vraiment pas le genre de choses qui devrait t'être
utile dans tes programmes...
Dans le message 42388f8b$0$15287$,
Alors ce n'est vraiment pas le genre de choses qui devrait t'être
utile dans tes programmes...
Dans le message 42388f8b$0$15287$,
Merci pour vos réponses...
Donc si j'ai bien compris,
struct Machin
{
DWORD Truc : 6, Chose : 26;
};
Signifie que la structure Machin à une taille de DWORD, 4
octets, soit 32 bits et qu'elle est composée de Truc qui fait
6 bits et Chose qui en fait 26 !!??
Non. Seulement que Truc aura au moins 6 bits utilisables et
Chose en aura au moins 24.
Au total, tu ne peux pas compter sur la taille sans te fier à
la documentation de ton compilateur spécifique (et souvent
selon ses options).
Par contre une autre question, Truc = 6 premiers bits, 6
derniers ou au hasard dans les 32 bits ?
Non défini par ISO C++. Voir la documentation de ton
compilateur si c'est important.
Désolé, je débute...
Alors ce n'est vraiment pas le genre de choses qui devrait
t'être utile dans tes programmes...
Dans le message 42388f8b$0$15287$7a628cd7@news.club-internet.fr,
Merci pour vos réponses...
Donc si j'ai bien compris,
struct Machin
{
DWORD Truc : 6, Chose : 26;
};
Signifie que la structure Machin à une taille de DWORD, 4
octets, soit 32 bits et qu'elle est composée de Truc qui fait
6 bits et Chose qui en fait 26 !!??
Non. Seulement que Truc aura au moins 6 bits utilisables et
Chose en aura au moins 24.
Au total, tu ne peux pas compter sur la taille sans te fier à
la documentation de ton compilateur spécifique (et souvent
selon ses options).
Par contre une autre question, Truc = 6 premiers bits, 6
derniers ou au hasard dans les 32 bits ?
Non défini par ISO C++. Voir la documentation de ton
compilateur si c'est important.
Désolé, je débute...
Alors ce n'est vraiment pas le genre de choses qui devrait
t'être utile dans tes programmes...
Dans le message 42388f8b$0$15287$,
Merci pour vos réponses...
Donc si j'ai bien compris,
struct Machin
{
DWORD Truc : 6, Chose : 26;
};
Signifie que la structure Machin à une taille de DWORD, 4
octets, soit 32 bits et qu'elle est composée de Truc qui fait
6 bits et Chose qui en fait 26 !!??
Non. Seulement que Truc aura au moins 6 bits utilisables et
Chose en aura au moins 24.
Au total, tu ne peux pas compter sur la taille sans te fier à
la documentation de ton compilateur spécifique (et souvent
selon ses options).
Par contre une autre question, Truc = 6 premiers bits, 6
derniers ou au hasard dans les 32 bits ?
Non défini par ISO C++. Voir la documentation de ton
compilateur si c'est important.
Désolé, je débute...
Alors ce n'est vraiment pas le genre de choses qui devrait
t'être utile dans tes programmes...
Michel Michaud wrote:Dans le message 42388f8b$0$15287$,Merci pour vos réponses...
Donc si j'ai bien compris,
struct Machin
{
DWORD Truc : 6, Chose : 26;
};
Signifie que la structure Machin à une taille de DWORD, 4
octets, soit 32 bits et qu'elle est composée de Truc qui fait
6 bits et Chose qui en fait 26 !!??
Non. Seulement que Truc aura au moins 6 bits utilisables et
Chose en aura au moins 24.
Non. Il est garanti que Truc a exactement 6 bits, et Chose 26.
Dans la mésure que les types sont signés, évidemment, c'est
difficile pour un programme conforme de le savoir, mais s'il
sont unsigned, si Truc vaut 63, ++ Truc vaut 0. Garanti par la
norme.
Il n'y aucune garantie en ce concerne la taille de
Machin, mais l'intention est clairement précisée que si la
taille d'un DWORD est 32 bits ou plus, que et Truc et Chose se
trouvent dans le même DWORD.
Désolé, je débute...
Alors ce n'est vraiment pas le genre de choses qui devrait
t'être utile dans tes programmes...
Il n'a pas dit qu'il voulait s'en servir ; il a vu qu'il l'a vu,
et qu'il voulait comprendre ce qu'il a vu.
Michel Michaud wrote:
Dans le message 42388f8b$0$15287$7a628cd7@news.club-internet.fr,
Merci pour vos réponses...
Donc si j'ai bien compris,
struct Machin
{
DWORD Truc : 6, Chose : 26;
};
Signifie que la structure Machin à une taille de DWORD, 4
octets, soit 32 bits et qu'elle est composée de Truc qui fait
6 bits et Chose qui en fait 26 !!??
Non. Seulement que Truc aura au moins 6 bits utilisables et
Chose en aura au moins 24.
Non. Il est garanti que Truc a exactement 6 bits, et Chose 26.
Dans la mésure que les types sont signés, évidemment, c'est
difficile pour un programme conforme de le savoir, mais s'il
sont unsigned, si Truc vaut 63, ++ Truc vaut 0. Garanti par la
norme.
Il n'y aucune garantie en ce concerne la taille de
Machin, mais l'intention est clairement précisée que si la
taille d'un DWORD est 32 bits ou plus, que et Truc et Chose se
trouvent dans le même DWORD.
Désolé, je débute...
Alors ce n'est vraiment pas le genre de choses qui devrait
t'être utile dans tes programmes...
Il n'a pas dit qu'il voulait s'en servir ; il a vu qu'il l'a vu,
et qu'il voulait comprendre ce qu'il a vu.
Michel Michaud wrote:Dans le message 42388f8b$0$15287$,Merci pour vos réponses...
Donc si j'ai bien compris,
struct Machin
{
DWORD Truc : 6, Chose : 26;
};
Signifie que la structure Machin à une taille de DWORD, 4
octets, soit 32 bits et qu'elle est composée de Truc qui fait
6 bits et Chose qui en fait 26 !!??
Non. Seulement que Truc aura au moins 6 bits utilisables et
Chose en aura au moins 24.
Non. Il est garanti que Truc a exactement 6 bits, et Chose 26.
Dans la mésure que les types sont signés, évidemment, c'est
difficile pour un programme conforme de le savoir, mais s'il
sont unsigned, si Truc vaut 63, ++ Truc vaut 0. Garanti par la
norme.
Il n'y aucune garantie en ce concerne la taille de
Machin, mais l'intention est clairement précisée que si la
taille d'un DWORD est 32 bits ou plus, que et Truc et Chose se
trouvent dans le même DWORD.
Désolé, je débute...
Alors ce n'est vraiment pas le genre de choses qui devrait
t'être utile dans tes programmes...
Il n'a pas dit qu'il voulait s'en servir ; il a vu qu'il l'a vu,
et qu'il voulait comprendre ce qu'il a vu.
Alors ce n'est vraiment pas le genre de choses qui devrait t'être
utile dans tes programmes...
beh je débute aussi et je me tracasse aussi quand je tombe sur un
truc que je ne comprend pas (à peu près tout ;-)
En particulier pour les types, ça peut dérouter un débutant
d'apprendre qu'un 'int' n'ait pas la même capacité sur telle ou
telle machine, et de devoir jeter un oeil à limits.h pour définir
un uint32 portable :)
Alors ce n'est vraiment pas le genre de choses qui devrait t'être
utile dans tes programmes...
beh je débute aussi et je me tracasse aussi quand je tombe sur un
truc que je ne comprend pas (à peu près tout ;-)
En particulier pour les types, ça peut dérouter un débutant
d'apprendre qu'un 'int' n'ait pas la même capacité sur telle ou
telle machine, et de devoir jeter un oeil à limits.h pour définir
un uint32 portable :)
Alors ce n'est vraiment pas le genre de choses qui devrait t'être
utile dans tes programmes...
beh je débute aussi et je me tracasse aussi quand je tombe sur un
truc que je ne comprend pas (à peu près tout ;-)
En particulier pour les types, ça peut dérouter un débutant
d'apprendre qu'un 'int' n'ait pas la même capacité sur telle ou
telle machine, et de devoir jeter un oeil à limits.h pour définir
un uint32 portable :)
car je suis sous l'impression que les
champs de bits ne me garantissent rien.
Il n'y aucune garantie en ce concerne la taille de
Machin, mais l'intention est clairement précisée que si la
taille d'un DWORD est 32 bits ou plus, que et Truc et Chose se
trouvent dans le même DWORD.
Oui, on est d'accord sur l'intention. Par contre, sur une machine
bizarre, je crois que le compilateur pourrait allouer beaucoup
plus, par exemple deux mots de 32 bits.
struct Machin
{
DWORD Truc : 6, Chose : 26;
};
car je suis sous l'impression que les
champs de bits ne me garantissent rien.
Il n'y aucune garantie en ce concerne la taille de
Machin, mais l'intention est clairement précisée que si la
taille d'un DWORD est 32 bits ou plus, que et Truc et Chose se
trouvent dans le même DWORD.
Oui, on est d'accord sur l'intention. Par contre, sur une machine
bizarre, je crois que le compilateur pourrait allouer beaucoup
plus, par exemple deux mots de 32 bits.
struct Machin
{
DWORD Truc : 6, Chose : 26;
};
car je suis sous l'impression que les
champs de bits ne me garantissent rien.
Il n'y aucune garantie en ce concerne la taille de
Machin, mais l'intention est clairement précisée que si la
taille d'un DWORD est 32 bits ou plus, que et Truc et Chose se
trouvent dans le même DWORD.
Oui, on est d'accord sur l'intention. Par contre, sur une machine
bizarre, je crois que le compilateur pourrait allouer beaucoup
plus, par exemple deux mots de 32 bits.
struct Machin
{
DWORD Truc : 6, Chose : 26;
};
car je suis sous l'impression que les
champs de bits ne me garantissent rien.
Il n'y aucune garantie en ce concerne la taille de
Machin, mais l'intention est clairement précisée que si la
taille d'un DWORD est 32 bits ou plus, que et Truc et Chose se
trouvent dans le même DWORD.
Oui, on est d'accord sur l'intention. Par contre, sur une machine
bizarre, je crois que le compilateur pourrait allouer beaucoup
plus, par exemple deux mots de 32 bits.
car je suis sous l'impression que les
champs de bits ne me garantissent rien.
Il n'y aucune garantie en ce concerne la taille de
Machin, mais l'intention est clairement précisée que si la
taille d'un DWORD est 32 bits ou plus, que et Truc et Chose se
trouvent dans le même DWORD.
Oui, on est d'accord sur l'intention. Par contre, sur une machine
bizarre, je crois que le compilateur pourrait allouer beaucoup
plus, par exemple deux mots de 32 bits.
car je suis sous l'impression que les
champs de bits ne me garantissent rien.
Il n'y aucune garantie en ce concerne la taille de
Machin, mais l'intention est clairement précisée que si la
taille d'un DWORD est 32 bits ou plus, que et Truc et Chose se
trouvent dans le même DWORD.
Oui, on est d'accord sur l'intention. Par contre, sur une machine
bizarre, je crois que le compilateur pourrait allouer beaucoup
plus, par exemple deux mots de 32 bits.