declaracion desconocida de bool

23/05/2005 - 18:54 por Marcio | Informe spam
Buenos días, tengo un código fuente que me mandaron
y que estuve examinando del cual no entiendo la
forma en que declara los atributos booleanos.
Busqué en google hasta cansarme pero no encontré nada.
Les agrega un :1 al final de cada nombre y no
se porque es. Alguien me dijo que era para indicarle
que ocupe solo 1 bit en memoria.
¿es esto cierto?
¿es ansi c++ o solo funciona con el compilador de vs?
¿hay algún enlace a algún tipo de documentación sobre el tema?

Parte del código fuente en cuestión:

class __PROF_UIS_API CExtBarButton : public CObject
{
public:
DECLARE_DYNCREATE(CExtBarButton);
protected:
CSize m_ActiveSize;
CRect m_ActiveRect;
bool m_bWrapH:1,
m_bWrapV:1,
...(sigue definiendo booleanos)

Gracias de antemano
Marcio

Preguntas similare

Leer las respuestas

#6 Isidro Muñoz
26/05/2005 - 11:43 | Informe spam
Hola Zephryn,

El comentario que yo he hecho para nada he intentado contradecir lo que tú
estás diciendo, me da la impresión que te ha ofendido mi respuesta.

Lo único que pretendo decir es que no podemos aferrarnos a que estas
técnicas son siempre buenas, una persona que este empezando en esto ve ese
mail, y a lo mejor a partir de mañana empieza a usar bit fields como un loco
porque le han dicho que es lo mejor y seguramente en su clan dirá que eso es
lo mejor porque lo han dicho en el foro de C++ de Microsoft.

No creemos alarmas sociales, cada técnica tiene su finalidad y es buena para
una solución o una situación concreta.

Para nada estoy en desacuerdo contigo, si hay que optimizar codigo para usar
poca memoria pues se hace que para eso está.

Pero tampoco podemos decir que para hacer un programa para PC donde uses una
estructura de datos que a penas se va a instanciar 50 veces a lo sumo y la
estructura ocupa 30 bytes, no le vayamos a decir que debe de usar bit
fields, lo puede usar pero no es necesario.

En ms-dos yo los campos fecha los almacenaba en 16 bits, que suerte hubiera
tenido yo si mi compilador hubiera permitido los campos bit fields, tenía
que estar con and y or y desplazamiento de bits para calcular los dias, mes
y años.

Mis disculpas si te ha molestado mi respuesta, pero no era mi intención.

Saludos.
Isidro.



"Zephryn Xirdal" escribió en el
mensaje news:
On Wed, 25 May 2005 09:57:15 +0200, Isidro Muñoz daipro.net> <<imunoz>
wrote:

> Tu lo has dicho, "si tienes poca memoria"
>
> Saludos.
> Isidro.
>
No te vayas a creer que todos vivimos con 512 Mb de RAM, una máquina de
vending o cualquier otro hadware vertical embebido tiene apenas ram.

Lo normal en esos dispositivos es ir muy escaso de recursos... 512 bytes,
1k, 2k y cosas así.



> "Zephryn Xirdal" escribió en el
> mensaje news:
>> On Tue, 24 May 2005 11:29:43 +0200, Isidro Muñoz daipro.net> <<imunoz>
>> wrote:
>>
>> > Hola,
>> >
>> > Yo es la primera vez que veo esa declaración. De todos ¿ para que
> quieres
>> > que ocupe solo un bit ?
>> >
>> > Me imagino que lo que hará es que en un unico byte almacenar todos


los
>> > bool,
>> > o sea, podrá almacenar hasta 8 bool en el byte de esta forma.
>> >
>> > Personalmente pienso que es para ahorrar bytes de memoria o de pila.
>> >
>> > Yo está técnica la tendría en cuenta si voy a hacer por ejemplo una
>> > función
>> > recursiva que va a consumir mucha pila, y la recursividad es muy
>> grande.
>> > O
>> > en caso de memoria que vaya a instanciar muchas veces esta clase, si
>> no
>> > fuera así yo no lo haría.
>> >
>> > Hablando a vote pronto creo que este ahorro de memoria va a


repercutir
> en
>> > más ciclos de cpu. Primero hay que indireccionar y luego operaciones
>> bit
>> > a
>> > bit.
>> Depende de la máquina y los recursos disponibles. Hay CPUs con acceso
>> directo a bits tanto en registros como en memoria (o en áreas
>> específicas
>> de la memoria). Si tienes poca memoria (windows ce, win mobile, etc),


no
>> tienes más remadio que hacer eso.
>>
>> >
>> > En fin, es mi opinión.
>>
>
>
>



Using Opera's revolutionary e-mail client: http://www.opera.com/mail/

Respuesta Responder a este mensaje
#7 Zephryn Xirdal
26/05/2005 - 12:08 | Informe spam
On Thu, 26 May 2005 11:43:28 +0200, Isidro Muñoz daipro.net> <<imunoz>
wrote:

Hola Zephryn,

El comentario que yo he hecho para nada he intentado contradecir lo que

estás diciendo, me da la impresión que te ha ofendido mi respuesta.



Ofendido ni de lejos, simplemente lo había interpretado como que me
contradecías; de todas formas entiendo que mi forma de escribir es un
tanto "directa", a veces por falta de tiempo y a veces simplemente por que
soy así.

Y lo que dices más abajo es completamente cierto.


Lo único que pretendo decir es que no podemos aferrarnos a que estas
técnicas son siempre buenas, una persona que este empezando en esto ve
ese
mail, y a lo mejor a partir de mañana empieza a usar bit fields como un
loco
porque le han dicho que es lo mejor y seguramente en su clan dirá que
eso es
lo mejor porque lo han dicho en el foro de C++ de Microsoft.

No creemos alarmas sociales, cada técnica tiene su finalidad y es buena
para
una solución o una situación concreta.

Para nada estoy en desacuerdo contigo, si hay que optimizar codigo para
usar
poca memoria pues se hace que para eso está.

Pero tampoco podemos decir que para hacer un programa para PC donde uses
una
estructura de datos que a penas se va a instanciar 50 veces a lo sumo y
la
estructura ocupa 30 bytes, no le vayamos a decir que debe de usar bit
fields, lo puede usar pero no es necesario.

En ms-dos yo los campos fecha los almacenaba en 16 bits, que suerte
hubiera
tenido yo si mi compilador hubiera permitido los campos bit fields, tenía
que estar con and y or y desplazamiento de bits para calcular los dias,
mes
y años.

Mis disculpas si te ha molestado mi respuesta, pero no era mi intención.

Saludos.
Isidro.



"Zephryn Xirdal" escribió en el
mensaje news:
On Wed, 25 May 2005 09:57:15 +0200, Isidro Muñoz daipro.net> <<imunoz>
wrote:

> Tu lo has dicho, "si tienes poca memoria"
>
> Saludos.
> Isidro.
>
No te vayas a creer que todos vivimos con 512 Mb de RAM, una máquina de
vending o cualquier otro hadware vertical embebido tiene apenas ram.

Lo normal en esos dispositivos es ir muy escaso de recursos... 512
bytes,
1k, 2k y cosas así.



> "Zephryn Xirdal" escribió en
el
> mensaje news:
>> On Tue, 24 May 2005 11:29:43 +0200, Isidro Muñoz daipro.net>
<<imunoz>
>> wrote:
>>
>> > Hola,
>> >
>> > Yo es la primera vez que veo esa declaración. De todos ¿ para que
> quieres
>> > que ocupe solo un bit ?
>> >
>> > Me imagino que lo que hará es que en un unico byte almacenar todos


los
>> > bool,
>> > o sea, podrá almacenar hasta 8 bool en el byte de esta forma.
>> >
>> > Personalmente pienso que es para ahorrar bytes de memoria o de
pila.
>> >
>> > Yo está técnica la tendría en cuenta si voy a hacer por ejemplo una
>> > función
>> > recursiva que va a consumir mucha pila, y la recursividad es muy
>> grande.
>> > O
>> > en caso de memoria que vaya a instanciar muchas veces esta clase,
si
>> no
>> > fuera así yo no lo haría.
>> >
>> > Hablando a vote pronto creo que este ahorro de memoria va a


repercutir
> en
>> > más ciclos de cpu. Primero hay que indireccionar y luego
operaciones
>> bit
>> > a
>> > bit.
>> Depende de la máquina y los recursos disponibles. Hay CPUs con acceso
>> directo a bits tanto en registros como en memoria (o en áreas
>> específicas
>> de la memoria). Si tienes poca memoria (windows ce, win mobile, etc),


no
>> tienes más remadio que hacer eso.
>>
>> >
>> > En fin, es mi opinión.
>>
>
>
>



Using Opera's revolutionary e-mail client: http://www.opera.com/mail/











Using Opera's revolutionary e-mail client: http://www.opera.com/mail/
Respuesta Responder a este mensaje
#8 Rodrigo Corral [MVP]
26/05/2005 - 21:59 | Informe spam
Como mola esto de ver una 'discursion' animada en este grupo!!!!


Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida