Cargando ...

Anda a Cascala!!!!

Así son las cosas y así te las he contado

14

La lógica ilógica

Adoro la lógica, que todo cuadre, que cuando ocurre algo digas “Ves? Tal y como lo había previsto”. Hoy acabo de descubrir algo que entra dentro de la gran cantidad de cosas lógicas que ocurren en la vida. Os dejo aquí mi nuevo teorema, recién descubierto:

“La suma de las partes es MENOR que el total”

¿Suena complicado? Nada más lejos de la realidad, veamos ejemplos chorrones:

1. Tengo 10 saquitos pequeños cerrados, con cada uno 10 canicas. Pues bien, en total suman 100 canicas. Eso es obvio. Ahora los meto en una bolsa de plástico, para transportarlos más cómodamente. ¿Cuántas canicas tengo ahora? Pues, en contra de lo que muchos podréis pensar, según mi nuevo teorema, ahora tengo 127 canicas.

2. Mis 12 abuelas me dan cada mes una propina de 10 euros cada una. Así que yo, como buen nieto, las visito cada mes para recoger el dinero, y vuelvo a casa con 120 euros. Pero resulta que este mes no he podido ir, así que he mandado a mi madre para que coja el dinero por mí. ¿Cuánto dinero me da mi madre? Podréis pensar que 120 euros, menos una pequeña comisión porque igual mi madre saca beneficio de la transacción pero… curiosamente mi madre me da los “150 euros” que ha recogido de mis 12 abuelas.

3. Los 5 amigos que somos en la pandilla ponemos 20 euros al principio de la noche cada vez que salimos juntos. ¿Alguien diría que juntamos 100 euros? ¡No! Según mi teorema, podremos gastarnos 80 euros en la cena, y luego otros 60 en cubatas, sin necesidad de que ninguno ponga más dinero.

Como véis, éste nuevo y revolucionario invento nos trae felicidad, ya que crece dinero de la nada. Ójala todo fuera así de fácil, la verdad.

Y ahora, para los frikis cepesianos que lean esto, os voy a poner un ejemplo REAL que acaba de pasarme en Hendrix:

 Tengo una estructura con varios campos. 2 de ellos son estructuras con 3 cadenas de 30 caracteres cada una, y después hay un entero, un vector de 4 caracteres y otro de dos. (Suena lioso, pero es sólo dibujárselo).

Ahora hacemos un printf, para que nos muestre los tamaños de los 5 campos, y obtenemos en pantalla algo como esto:

90 90 4 4 2 

Aparentemente correcto: 3 cadenas de 30 caracteres (dos veces), un entero, un vector de 4 caracteres y otro de dos.

Ahora hacemos otro printf con el tamaño total de la estructura y ¿qué obtenemos?

192

¿Alguien puede decirme qué pasa aquí? Han sido 4 horas mirando el mismo trozo de código. Es bastante simple, sólo hay 2 printfs, nada más. Lo demás son las definiciones de la estructura “CHACHI” (revisada muy cautelosamente).

¿Cigarros que solucionan errores de compilación? ¿Estructuras que miden más que las sumas de sus campos? Como alguien se atreva a decirme que la programación es “pensar bien tu código antes de escribir, y todo irá sobre ruedas”, caerá sobre él toda la ira de D. Loixiyo.

Y ya está    🙂

Ahora me voy a dormir, que esto me satura.

14 comentarios

  • loixiyo
    martes, 22 de septiembre de 2009, a las 11:38

    Anda…

    Ahora la guerra se viene a mi blog? Bueno, bueno… Pues nada, yo a escuchar

  • Windgate
    miércoles, 23 de septiembre de 2009, a las 15:11

    Nada tranki que te prometo que no meto más trifulca aquí 😛 Lo mejor es pasar del tema pero he visto el 7º nick del NPC este y ha sido tentador.

  • loixiyo
    jueves, 24 de septiembre de 2009, a las 17:24

    Jejejej. naaada, hombre de dios!

    Tú discute donde quieras, en putocps, aquí.. yo no me quejo, simplemente me hizo gracia.

    Ale!

  • david
    viernes, 07 de mayo de 2010, a las 14:57

    Bueno, aunque esto es un poco viejuno, hoy me he acordado de ti. Mirando un cacho de código C me he encontrado con esta cosa horrorosa:
    struct rudp_hdr {

    u_int16_t version;

    u_int16_t type;

    u_int32_t seqno;

    }__attribute__ ((packed));

    Así que he buscado por ahí y parece ser que esta es la solución (dependiente del compilador GCC) para ese problemilla. Dejo un par de enlaces por si acaso alguna vez le hace falta a alguien:
    http://sig9.com/articles/gcc-packed-structures
    http://grok2.tripod.com/structure_packing.html

Escribe un comentario

*

XHTML: Éstas son algunas de las etiquetas que puedes utilizar: <a href=""> <b> <blockquote> <code> <em> <i> <strike> <strong>