Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Incluyendo .h desde varios archivos

Iniciado por Cronodragón, 01 de Enero de 1970, 01:00:00 AM

« anterior - próximo »

Cronodragón

                                Estoy poniendo una serie de rutinas en un .h. Esas rutinas las llamo desde otro .h. Pero ahora necesito inlcuir el .h en el .cpp principal, pero me dice que ya existen todas esas rutinas. Cómo hago para cargar los .h sólo una vez? Gracias de antemano.
                               

jpastor

                                Por al principio del .h

#ifndef __loquequiera_H
#define __loquequiera_H

y al final del archivo:


#endif // __loquequiera_H                                

jpastor

                                Se me olvidaba decir que no es muy elegante incluir codigo en los archivos cabeceras.                                

CordayUK

                                otra forma de hacer lo que ha dicho jpastor es poner un


#pragma once


al principio de la cabecera

                               

synchrnzr

                                ¿Eso es ANSI?                                

Cronodragón

                                Muchas gracias, jamás lo hubiera sabido sin preguntar.

Estoy creando las librerías de mi motor en archivos .h. Pero también se me ha ocurrido meter código libre dentro de un .h, y luego incluirlo dentro de una rutina. Sería bastante más limpio trabajar así que entre un montón de funciones utilitarias. Además me parece que C no es elegante... no creo que poder apelotar un montón de código en una sóla línea sea algo elegante. Por eso podría concluir que para programar Delphi es el elegante y C es el rápidillo.                                

jpastor

                                OK como quieras,

Meter codigo en las cabeceras implica una repeticion innecesaria. Para cada .cpp que incluya la cabecera se creara una función, por lo que cada .cpp repetirá el código.                                

MFlores

                                Cronodragón,

No estoy de acuerdo contigo, para mí la elegancia reside precisamente en la característica que tiene C de que una expresión tiene un valor que puedes utilizar en otra expresión, encadenando así sentencias con pocas 'palabras' en una línea.

Puedes desencadenar ejecución de código que parece mentira que una sola línea de programa pueda hacer, eso es elegancia.  Reconozco que requiere aprender a leer y escribir C para captar esa sutileza, pero cuando lo consigues, es casi magia.

Un saludo,
MFlores.

                               

NeLo

                                Que bonito MFlores.

Si en vez de C pones un nombre de mujer, tienes un poema que ni Neruda xDD
                               
Drowning deep in my sea of loathing

NeLo

                                Cronodragón yo de ti implementaría las funciones en cpp y no en h.

Y C es elegante si uno escribe elegantemente. Si no, puede salir un código ilegible. Como en todo xDD
                               
Drowning deep in my sea of loathing

MFlores

                                Bueno, bueno, te vas aproximando tú también. :sonriendo:
                               

ethernet

                                El problema mas grave de escribir codigo en las cabeceras es q despues puede q tengas problemas al linkar puesto q puede haber simbolos q se redefinan (por ejemplo en cabeceras de  librerias o dll's), y esos errores de link son asquerosos xDD
Saludos

_________________
main(int i,char **p){
 int b;char *a=0;while( a[b=(int)"rvbolsf`Coz`lp-fp#.#pbovglp#"] ? printf("%c",a++^i): 0);
}

[ Este Mensaje fue editado por: ethernet el 2002-09-19 21:31 ]                                

Cronodragón

                                jpastor y ethernet: bueno, eso se arregla colocando las funciones en las librerias correctas.

MFlores: es cierto que reunir código con macros es una forma más elegante de programar, pero sólo si aprendes a utilizarlo. En cambio Pascal te obliga a llevar un orden en el código, te enseña que cada cosa tiene su lugar, te enseña el sol que ilumina a las aves que vuelan en el cielo y te canta sobre la brisa que refrezca sus plumajes... ehmm, jústamente por eso fue hecho por un profesor universitario. Mientras que C fue hecho por ingenieros para hacer las cosas rápido y eficientemente.

NeLo:
CitarY C es elegante si uno escribe elegantemente. Si no, puede salir un código ilegible.
En todo caso tienes razón.                                

MFlores

                                :sonriendo: :sonriendo: :sonriendo: :sonriendo: :sonriendo: :sonriendo:
XDDDDDDDDDDDD



[ Este Mensaje fue editado por: MFlores el 2002-09-20 09:16 ]                                

Tei

                                opino lo mismo, los lenguajes estilo pascal son un aparato para los dientes, para modelar la forma de programar de uno de una forma que un profesor universitario cree que es la correcta. C es la forma en la cual la gente que construye las cosas necesita que se hagan las cosas, es pragmatico. Ademas resulta que por la simplicidad que tiene C es tan hermoso como mucha gente piensa de las matematicas. Esa simplicidad es pureza. En cambio han intentado limpiar pascal una y mil veces de mecanismos ocultos, y nunca han tenido demasiado exito. Aparentemente estoy en contra de pascal, pero no es asi, tiene su lugar y su momento. Por ejemplo Delphi esta bien. Y cada cosa esta bien en su uso.                                






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.