Referencia de un char [] en una función.[Akai pasate por favor que modificado]xD

Iniciado por anonimo12121, 24 Marzo 2011, 13:05 PM

0 Miembros y 5 Visitantes están viendo este tema.

d(-_-)b

Cita de: Akai en 29 Marzo 2011, 19:18 PM

Code Complete 2, de Steve McConnel. En si es un libro dedicado a desarrollo de software, pero incluye un capítulo de optimización y "tunning" de código, (no tengo enlace para descargarlo, pero estoy seguro que no será dificil encontrarlo).

No, no es dificil encontrarlo, y menos cuando esta en mi HD:  :xD

Code Complete 2nd edition by Steve McConnel

Torrent:

PDF: :http://torrents.thepiratebay.org/5028620/Code_Complete_2nd_edition_PDF_ebook.5028620.TPB.torrent
CHM: :http://torrents.thepiratebay.org/4168190/Code_Complete__2nd_Edition_(2004).chm.4168190.TPB.torrent

Mediafire:

PDF: :http://www.mediafire.com/?lztbze8hi6h0zy9
CHM: :http://www.mediafire.com/?4spc1qrqgwukvx0

saludos...
Max 400; caracteres restantes: 366

anonimo12121

Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746

D4RIO

A primera vista, el código NO es lindo, y es un híbrido entre C y C++. Pero fuera de eso, observa esta parte con algo de detenimiento y criterio:

Código (cpp) [Seleccionar]
        if(n<10){
            for(int j=0;;j++){
                if(name[j]=='.')break;
                if(name[j]=='-'){
                    sprintf(t,"%d",i);
                    name[j+1]='0';
                    name[j+2]=t[0];
                    break;
                }
            }
        }
        else {
            for(int j=0;;j++){
                if(name[j]=='.')break;
                if(name[j]=='-'){
                    sprintf(t,"%d",i);
                    name[j+1]=t[0];
                    name[j+2]=t[1];
                    break;
                }
            }
        }


Es horrible y no tiene sentido. Verificas que el valor de "n" sea menor que 10, pero en realidad deseas verificar el de "i", porque haces el sprintf(t,"%d",i) y supones que si "i" es menor a 10, debes poner un "0".

Pero aún si hubieras puesto la "i" donde va, no hay necesidad de poner por un lado:

Código (cpp) [Seleccionar]
                    sprintf(t,"%d",i);
                    name[j+1]='0';
                    name[j+2]=t[0];


y por otro:

Código (cpp) [Seleccionar]
                    sprintf(t,"%d",i);
                    name[j+1]=t[0];
                    name[j+2]=t[1];


porque al fin y al cabo, sprintf puede poner el cero a la izquierda si se lo pides amablemente, y con eso quiero decir que si usas sprintf **leas la documentación** de tal función (y nada de 'no la encontre' porque está en todo internet): LINK.

Usa el formato "%02d" y evitarás ese condicional.
OpenBSDFreeBSD

Akai

Cita de: xD4RIOx en 30 Marzo 2011, 14:21 PM
es un híbrido entre C y C++

C++ contiene todo lo de C (cstdio, cstdlib etc etc etc), no existe un hibrido entre ambos si estás programando en C++

anonimo12121

Bueno si tendrías razón pero todavía no me  leído la función cuando me lo lea lo corregiré. xDD Saludos.
Y otra cosa si uso C++ podría usar todo lo de C sin problemas no? "como dice nuestro compañero Akai".
C++ es C mejorado.
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746

D4RIO

Ese verso ya me lo sabía. Ok, es soportado dentro de C++, pero no forma parte de su idea.

C++ define un paradigma propio, horrible y sin sentido, casi Orientado a Objetos, con lo que puedes programar "Pensando C++" o no (lo cual sería mejor). Pero no quiero empezar flamewars. En mi opinión, trabajé con C y con C++ por años, y creo que ANSI C es la elección más sabia. A demás, creo que son bastante distintos.

Les dejo la opinión de Linus Torvalds (me incluyo, y es la opinion de la de la mayor parte de los gurús de C) AQUI.

CitarC++ es C mejorado.
Yo lo describiría como una aberración

Saludos
OpenBSDFreeBSD

Akai

Cita de: Xafi en 30 Marzo 2011, 14:55 PM
como dice nuestro compañero Akai".
C++ es C mejorado.

NO, eso no lo digo yo. Yo digo que es AMPLIADO, es decir, C++ (C incrementado) es C + añadidos.

NO me vas a ver decir que tal o cual lenguaje sea mejor que otro por la AUSENCIA de herramientas (mirando desde C++ a C). Sería como decir que Java es mejor que C/C++ porque no tiene manejor manual de memoria.

Por otra parte, ni de broma pretendía empezar un flamewar por citar el hecho que C++ incluye a C para comentar que dicho modo "hibrido entre C y C++" no tiene demasiado sentido _(desde mi punto de vista)_ como tal.

Siento que se me haya malinterpretado.

EDIT: Añado:
Cita de: xD4RIOx en 30 Marzo 2011, 15:31 PM
Ok, es soportado dentro de C++, pero no forma parte de su idea.
En efecto, puede que no forme parte de su idea, y a planteamientos de dicho ámbido sobre el lenguaje no entro. Pero creo que pese a quizás no formar parte de su idea el hecho que como herramienta si es posible usarse, creo que debería comentarse.

D4RIO

Al fin y al cabo, fue por describirlo como híbrido. Digamos C++ al estilo de C, lo cual como dice Linus, evitaría aunque sea por el solo hecho de mantener alejados a los programadores en C++ del proyecto. Cada cual con su maña.

Saludos
OpenBSDFreeBSD

anonimo12121

Quería decir esto de akai.
CitarY otra cosa si uso C++ podría usar todo lo de C sin problemas no? "como dice nuestro compañero Akai".

C++ es C mejorado es lo que he leido en otro lado o algo similar XD
Página para ganar Bitcoins y Dinero: http://earnbit.hol.es/
Video de YouTube con Hack para el LoL: http://adf.ly/5033746/youtube-lolemuhack
Si quieres ganar dinero con adfly entra y registrate aquí -> http://adf.ly/?id=5033746

D4RIO

Seguramente de Stroustrup o algún fanático. C++ no puede ser mejorado porque, por empezar, propone otra forma de resolver los problemas. A demás del malnacido mangler y toda esa basura innecesaria.
OpenBSDFreeBSD