[DUDA] Adición de librerías

(1/2) > >>

DarkItachi:
Hola buenas :) Tengo una pregunta, cuando metes una directiva de preprocesador como Código
#include <string>
el compilador incluye las funciones que usas o todas? Es decir, si vas a usar dos funciones chorra como strlen o strlwr es mejor incluir la librería string o creártelas por tu mismo en el programa? Qué ventajas tiene? Y que desventajas?

Salu2

Akai:
Las incluye todas. A menos que tuvieses límites de meoria y/o espacio, la inclusión de toda la libreria en vez de únicamente las x funciones que tu uses, no debería ser un problema.

Littlehorse:
Citar

Que desventajas?

Depende la función, pero si hablamos de funciones estándar no seria lo mas adecuado reemplazarla al menos que estemos hablando de algo estrictamente necesario.

Por ejemplo, es muy sencillo hacer una función que cuente los caracteres de un arreglo, pero funcionara igual que la estándar? sera igual de rápida? sera portable? sera igual de segura?.
Ten en cuenta que con ese criterio tendrías que codificar por tu cuenta mas de una función y eso no solo ampliara el tiempo de desarrollo, ademas, hará que el programa final sea mas susceptible a errores (Como se suele decir, prone to error)

Seguramente muchas funciones se podrían hacer en menos lineas, pero menos lineas no siempre significa mejor.

Mi opinión por lo menos es que no existen ventajas de la forma que lo estas planteando.

Saludos

DarkItachi:
Cita de: Littlehorse en 28 Abril 2010, 08:37 am

Citar

Que desventajas?

Depende la función, pero si hablamos de funciones estándar no seria lo mas adecuado reemplazarla al menos que estemos hablando de algo estrictamente necesario.

Por ejemplo, es muy sencillo hacer una función que cuente los caracteres de un arreglo, pero funcionara igual que la estándar? sera igual de rápida? sera portable? sera igual de segura?.
Ten en cuenta que con ese criterio tendrías que codificar por tu cuenta mas de una función y eso no solo ampliara el tiempo de desarrollo, ademas, hará que el programa final sea mas susceptible a errores (Como se suele decir, prone to error)

Seguramente muchas funciones se podrían hacer en menos lineas, pero menos lineas no siempre significa mejor.

Mi opinión por lo menos es que no existen ventajas de la forma que lo estas planteando.

Saludos


Osea, que es mejor usar librerías aunque vayas a usar solo una función. Pero si incluyes más librerías influye en el tamaño del ejecutable :?

Gracias.

biribau:
Por norma general NO incluye todas las librerías, de una librería sacas libros independientes, o sea funciones. Incluye TODAS las funciones en compilación(declaraciones), pero en linkado(ejecutable final) solo mete las que uses(y dependientes), por eso las librerías son objetos especiales, no simples .obj, sino que son colecciones de simbolos indexados o algo así.

@Littlehorse: es error-prone :P

Por otra parte puedes implementarlas, a veces es util y otras necesario, a veces se necesitan implementaciones ligeras(uClib) otras reimplementaciones (cualquier nuevo sistema operativo necesitará cambios en las llamadas al sistema), mas eficientes(hay multitud de librerias para gestion de heap(malloc/free), smartpointers). Yo hice una vez mi propio new delete, para debuguear memory leaks. Y también es sabido que una de los mayores cuellos de botella fácilmente optimizables son precisamente en la gestión de memoria dinámica(sólo daros cuenta que la implementación que te dan es genérica y debe servir para todos más o menos, pero tú en tu programa tienes más información de como se usa la memoria pues puedes adaptarlo, especializarlo a tí haciendolo más rápido, evitando congelamientos a veces para no desmejorar la inmediatez de la respuesta(que raro suena esto, no recuerdo como era en inglés xD))

Navegación

[0] Índice de Mensajes

[#] Página Siguiente