Foros del Web » Programación para mayores de 30 ;) » Programación General »

Afecta la cantidad de librerias a el programa?

Estas en el tema de Afecta la cantidad de librerias a el programa? en el foro de Programación General en Foros del Web. Saludos! ... He terminado (gracias a ustedes) un programilla ahí con el cuál experimenté (y aprendí) varias cosas... esta corriendo... todo perfecto... pero, ya que ...
  #1 (permalink)  
Antiguo 22/06/2005, 02:13
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Exclamación Afecta la cantidad de librerias a el programa?

Saludos! ...

He terminado (gracias a ustedes) un programilla ahí con el cuál experimenté (y aprendí) varias cosas... esta corriendo... todo perfecto... pero, ya que apliqué muchas cosas nuevas voy a revizarlo y a optimizarlo... y desde el inicio del programa me encuentro conque he incluido librerias que quizá pueda precindir de ellas y algunas que incluyo solo por una función... entonces, me surge la pregunta:
¿afecta el número de librerias que incluyo a mi programa??; lo vuelve más lento? aumenta su peso?...

La verdad esque hasta ahora no había pensado en ello... he buscado y no encuentro algo que haga mención siquiera de este asunto (ó no supe buscar )...

Aprobechando del post, enlisto las librerías que incluyo y las funciones por las cuál la incluí... quizá haya alternativas de las éstas.. o cualquier comentario respecto a el por qué y para qué es bienvenido:

- stdio.h
De cajón....
- io.h
access: solo para verificar la existencia de X archivo. ¿podré confiarme de un fopen("...", "r")??. ¿por qué motivos un archivo no podría abrirse para leerse que no fuera por su inexistencia?? ¿permisos? ... ¿cómo detectar la causa del fallo --si lo hubiere--?.
- stdlib.h
atoi: Recibo un número del promt (argv) como char y utilizo esto para pasarlo a int y poder utilizarlo como lo que és. Solo lo ocupo una vez pero me es necesario...
- ctype.h
isgraph, isspace: En una función cuento los carácteres, palabras y líneas de un archivo --de texto--... para saber si son "verdaderos" carácteres uso isgraph; ¿será alternativa una condicional del tipo c!='\n' && c!=' ' && c!=EOF... etc?; ¿qué más casos de los mencionados serían (el "etc")?. Probé sustituir isspace() con c==' ' y aparentemente no hubo problema...
- string.h
strcmp, strlen: Me es indispensable su uso... aquí si no "las discuto" .
- conio.h
textcolor, cprintf: imprimir una cadena de cierto color... ¿alternativas?
- process.h
exit: En un principio la usé como "salida fácil"... pero estructurando bien mi programa ya no hago uso de esta función... ahora me baso en returns e if's , creo yo, como debería de ser... ya no uso exit.
Y es lo que tengo... no dudo "este haciendo drama" a comparación de otras aplicaciones que han de tener muchas más librerias... pero sí me intereza el correcto uso/aprovechamiento de esto, y creo que para mi programita tan sencillo estoy usando muchas librerias; ¿es correcto incluir una libreria cuando ocupo solo una función de esta??.

Saludos y gracias de antemano

Edito:
Mi compilador es Turbo C++ v3.0 pero solo trabajo con lenguaje C ( ¿qué necesito para "pasarme" a C++? )... no lo especifiqué antes porque supongo la pregunta es abierta a cualquier lenguaje pero lo aclaro por cualquier cuestión.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 22/06/2005 a las 02:37
  #2 (permalink)  
Antiguo 22/06/2005, 02:47
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
En el tamaño afectan sin lugar a dudas. En la velocidad depende de si podes escribir esas funciones y hacerlas mas rapidas

La unica posibilidad de optimizacion que le veo es QUITAR todas las funciones que provee la Run Time Library de C (no se si ese arcaico compilador/enlazador tiene esa opcion) y escribir todas las funciones uno mismo, si te interesa escribi hace algun tiempo unos tutoriales al respecto, pero es algo un tanto complejo.

En sintesis, en la amplia mayoria de los casos es lo correcto, para eso estan las librerias standard (ojo que conio.h no es standard ni mucho menos) para ser reutilizadas. Si queres el programa mas compacto posible hay que sacrificarse y escribir TODO.

PD. Yo no me preocuparia demasiado y cambiaria de inmediato de compilador, MS-DOS esta muerto, ya tenemos los procesadores de 64 bits a la vuelta de la esquina y una grata sorpresa de Microsoft, no soporta procesos de 16 bits
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #3 (permalink)  
Antiguo 22/06/2005, 12:38
 
Fecha de Ingreso: noviembre-2003
Ubicación: Mexico
Mensajes: 1.081
Antigüedad: 21 años
Puntos: 7
Cita:
Iniciado por Eternal Idol
PD. Yo no me preocuparia demasiado y cambiaria de inmediato de compilador, MS-DOS esta muerto, ya tenemos los procesadores de 64 bits a la vuelta de la esquina y una grata sorpresa de Microsoft, no soporta procesos de 16 bits
vaya, que pasara con todos los que usan aquellas viejas versiones de borland (y vaya que son MUUUUUUUCHOS.....)
  #4 (permalink)  
Antiguo 22/06/2005, 12:40
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Se joderan, mejor, Borland es una empresa que me parece de cuarta categoria. Y ademas ya va siendo hora de olvidarse de MS-DOS.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #5 (permalink)  
Antiguo 22/06/2005, 14:56
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años
Puntos: 52
Mmmm pues aun asi, muchos grandes progrmadores todavia usan el ms-dos, lo mas probable es que se vayan a linux, quien sabe.
Pero no me parece del todo
  #6 (permalink)  
Antiguo 22/06/2005, 15:02
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Viven anclados al pasado, ¿Acaso hay programas comerciales para MS-DOS? Ya me parece bastante que se soporte 9x pero MS-DOS ya seria el colmo de los colmos.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #7 (permalink)  
Antiguo 23/06/2005, 01:40
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Bueno... primero aclarar que soy nuevo en C y en la programación en general... si estoy en C es porque, según se me confirmó en repetidas ocasiones, este lenguaje es la BASE y aprendiendolo se me facilitaría "adaptarme" a otra cosa.... La cosa es que solo quiero aprender...

Este programa que he hecho es solo para "experimentar" sobre la edición/acceso/manipulación de archivos (de texto)... nada útil, no intento hacer algo más que aprender y practicar...

Han de imaginarse mi cara cuando hablan de "procesadores de X bits", "asignación de memoria", "estándares" y cosas por el estilo ... Pa que se den una idea de cómo me pongo ->

Ahora... no me da "miedo" aprender y --tratar de-- entender de lo que hablan... pero sí necesitaría ayuda: ¿algunos enlaces?, ¿alguna lectura?... ... . Como pregunta extra: ¿entonces estoy perdiendo mi tiempo con C??... ¿en qué me afecta el que cambie de compilador si el lenguaje es el mismo??; dudo que con mi mismo código y solo por cambiar de compilador mi programa "se adapte" a un "ambiente Windows"... .

Pero regresando a la pregunta original , Eternal Idol, haces mención de algunos tutoriales de tu creación... aunque mencionas que son complejos si consideras me pueden ayudar... pués te agradecería la ayuda...

Y por último... no había visto que las funciones que ocupo de conio.h no son estándares (no podré ocuparlas en LINUX)... ¿alguna que sí lo sean --alternativas--?... ... ... y ya que me explayé con mi novates... Teniendo un mismo código el programa será válido tanto para LINUX como para Win$???... supongo solo será dependiente de que las funciones sean stándares... una pregunta quizá estúpida pero... más estúpido quedarme con la duda tan simple ...

Saludos y gracias...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #8 (permalink)  
Antiguo 23/06/2005, 01:55
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Cita:
Iniciado por jam1138
Bueno... primero aclarar que soy nuevo en C y en la programación en general... si estoy en C es porque, según se me confirmó en repetidas ocasiones, este lenguaje es la BASE y aprendiendolo se me facilitaría "adaptarme" a otra cosa.... La cosa es que solo quiero aprender...
C es fundamental y solo deberias "adaptarte" a C++ que es mucho mas versatil y potente y aprender ensamblador, programacion a mucho mas bajo nivel.

Cita:
Iniciado por jam1138
Este programa que he hecho es solo para "experimentar" sobre la edición/acceso/manipulación de archivos (de texto)... nada útil, no intento hacer algo más que aprender y practicar...
Todo lo que sea una libreria standard de C te servira en cualquier entorno, previa recompilacion por supuesto.

Cita:
Iniciado por jam1138
Como pregunta extra: ¿entonces estoy perdiendo mi tiempo con C??... ¿en qué me afecta el que cambie de compilador si el lenguaje es el mismo??; dudo que con mi mismo código y solo por cambiar de compilador mi programa "se adapte" a un "ambiente Windows"... .
Por supuesto que no estas perdiendo el tiempo, todo lo contrario. El compilador afecta desde el momento en que empezas a depender de el usando librerias que no se encuentran en otros compiladores.

Cita:
Iniciado por jam1138
Pero regresando a la pregunta original , Eternal Idol, haces mención de algunos tutoriales de tu creación... aunque mencionas que son complejos si consideras me pueden ayudar... pués te agradecería la ayuda...
No creo que te sirvan en estos momentos realmente.

Cita:
Iniciado por jam1138
Y por último... no había visto que las funciones que ocupo de conio.h no son estándares (no podré ocuparlas en LINUX)... ¿alguna que sí lo sean --alternativas--?... ... ... y ya que me explayé con mi novates... Teniendo un mismo código el programa será válido tanto para LINUX como para Win$???... supongo solo será dependiente de que las funciones sean stándares... una pregunta quizá estúpida pero... más estúpido quedarme con la duda tan simple ...
Conio.h no es standard, al no serlo un compilador puede incluirla o no. La opcion que te queda es escribir tu propia libreria, con compilacion condicional por ejemplo, que usando los servicios del Sistema Operativo sirva tanto en MS-DOS, Linux o Windows.

Todo lo que sea standard (archivos, consola basica y algunas otras cosas) te funcionaran pero todo lo que sea GUI olvidalo, necesitarias una libreria hecho por un tercero, usar la API del S.O. directamente o crear una libreria propia. Los sockets por ejemplo no son 100% compatibles pero practicamente lo son, en Windows necesitas una funcion de inicializacion y desinicializacion que en Linux no hace falta.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #9 (permalink)  
Antiguo 23/06/2005, 23:00
 
Fecha de Ingreso: junio-2005
Mensajes: 2
Antigüedad: 19 años, 5 meses
Puntos: 0
oye por que no usas Devc++?? es GNU.. Y TIENE UNA INTEGRACIÓN MUY BUIENA DE LIBRERÍAS... aH además te ayuda con el molesto pedo de los memory leaks... te va diciendo cuanta memoria estas ocupando en el ejecutable....
se actualiza muy seguido y es de los mejores para aprendices o enamorados de MS-DOS que les cuesta trabajo la idea de desprenderse de la interfaz texto.
saludos Morelia!
  #10 (permalink)  
Antiguo 24/06/2005, 01:03
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Gracias por tus respuestas Eternal Idol... sigo por el camino que voy pués... así que regresando a la cuestión original...
- He hecho esta función para reemplazar isgraph() e isspace() y ya no incluir <ctype.h>:
Código:
int c_type(char c) {
    if(c==' '||c=='\n'||c=='\r'||c=='\t'||c==EOF) return 0;
    else return 1;
}
// Y simplemente la ocupo así
c=fgetc(file);
if(c_type(c)) ...
Por el momento me funciona a la perfección ... tendría que comparar el valor --if(c_type(c)==1)-- ó es suficiente con lo que hago???, ¿no hay otro tipo de carácteres que comparar??...

- Para reemplazar strcmp() hice esto:
Código:
int strcmp(char *string1, char *string2) {
	int i, r=0;
    for(i=0; string1[i]!='\0'; i++)
	  if(string1[i]!=string2[i]) { r=1; break; }
return r;
}
// Y la ocupo como la función original
if(strcmp("algo", "otro_algo")==0) ....
¿ven algo mal??... igual aparentemente me funciona bien.

- Para remmplazar strlen() intenté esto:
Código:
int strlen(char *string) {
	int i=0;
    while(string[i]!='\0') i++;
return i;
}
Pero no me funcionó .. no sé el por qué:
Código:
void main() {
	char str1[4]="Hola";
	char str2[5]="mundo";
	printf("%s -> %d\n", str1, strlen(str1)); // devuelve 5. correcto
	printf("%s -> %d\n", str2, strlen(str2)); // devuelve Hola[carácter_raro]mundo -> 10 
}
Osease, me une las N cadenas que defina... ¿por qué sucede esto??; he intentado poner nombres que en nada se parescan (), definir mi función de la forma int strlen(const char *string)
... y ya ni recuerdo qué cosas más... el comportamiento es el mismo... ¿algo que ver con la memoria??

Bueno... eso he intentado por ahora; atoi sí no le veo por dónde ... menos las funciones para colorear el texto!!... y sigo con la pregunta ¿qué cosas pueden probocar que fopen() falle???...

Cita:
Iniciado por Eternal Idol
La opcion que te queda es escribir tu propia libreria, con compilacion condicional por ejemplo, que usando los servicios del Sistema Operativo sirva tanto en MS-DOS, Linux o Windows.
Me perdí... ...

Gracias, gracias, gracias...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 24/06/2005 a las 01:12
  #11 (permalink)  
Antiguo 24/06/2005, 01:37
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Cita:
Iniciado por jam1138
Por el momento me funciona a la perfección ... tendría que comparar el valor --if(c_type(c)==1)-- ó es suficiente con lo que hago???, ¿no hay otro tipo de carácteres que comparar??...
Tal vez podrias determinar si es un caracter valido (desde 32).

Cita:
Iniciado por jam1138
(strcmp("algo", "otro_algo")==0) ... ¿ven algo mal??... igual aparentemente me funciona bien.
A simple vista parece correcta, aunque no tiene la funcionalidad exacta de la funcion de C que devuelve valores menores o mayores a cero segun el orden alfabetico (local).

Cita:
Iniciado por jam1138
Código:
void main() {
	char str1[4]="Hola";
	char str2[5]="mundo";
	printf("%s -> %d\n", str1, strlen(str1)); // devuelve 5. correcto
	printf("%s -> %d\n", str2, strlen(str2)); // devuelve Hola[carácter_raro]mundo -> 10 
}
strlen funciona bien pero str1 y str2 no tienen el tamaño suficiente para contener esas cadenas, deberian ser str1[5] y str2[6]. Un buen compilador como VC++ da error al compilar y te da la razon

Cita:
Iniciado por jam1138
Bueno... eso he intentado por ahora; atoi sí no le veo por dónde ... menos las funciones para colorear el texto!!... y sigo con la pregunta ¿qué cosas pueden probocar que fopen() falle???...
Para atoi mas o menos tenes que recorrer el array de caracteres y segun la posicion usando el 10 a la potencia de la misma y restandole 48 ('0') al numero que contenga sumarlo a un total. Si tenemos "265" podemos por ejemplo calcular el total y empezar desde el ultimo caracter, 10 a la 0 * 5 = 5, mas 10 a la 1 * 6 = 60 + 5 = 65, mas 10 a la 2 por * 2 = 200 + 65 = 265!.

Las funciones de texto lo siento pero solo conozco las de Windows, que yo sepa cada Sistema Operativo las implementa de diferente manera.

fopen puede fallar por no existir el archivo en cuestion o por carecer de permisos sobre el mismo entre otras cosas.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #12 (permalink)  
Antiguo 24/06/2005, 01:46
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Cita:
Iniciado por spongebobdev
oye por que no usas Devc++?? es GNU.. Y TIENE UNA INTEGRACIÓN MUY BUIENA DE LIBRERÍAS... aH además te ayuda con el molesto pedo de los memory leaks... te va diciendo cuanta memoria estas ocupando en el ejecutable....
se actualiza muy seguido y es de los mejores para aprendices o enamorados de MS-DOS que les cuesta trabajo la idea de desprenderse de la interfaz texto.
Perdón, cuando respondí anteriormente no había visto esto... Gracias por tu sugerencia... ... ... 5 minutos después continuaba escribiendo... preguntando más cosas... pero entre más avanzaba me surgían nuevas cosas que creo sería mejor abrir otro post; básicamente trataría de lenguajes, SO's, Compiladores y librerías ... temo que no he captado bien dónde empieza y termina "el trabajo" de cada uno.... pero será después, no quiero perderme más de lo que estoy...

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #13 (permalink)  
Antiguo 25/06/2005, 01:13
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Cita:
Iniciado por Eternal Idol
Tal vez podrias determinar si es un caracter valido (desde 32).
Entiendo sería seguro... ¿pero será necesario??... sería desde el 33 (el 32 es espacio) hasta el 126 (127 es DEL)???... ó hasta el 254?? ... como sea, son demasiadas comparaciones en todo caso lo mejor sería al revés ¿no? ...
Código:
int c_type(char c) {
	char i; // con lo que se comparará
	int r=1; // para regresar el valor
    for(i=0; i<33; i++) // de 0 a 33... ciclo más pequeño
	  if(c==i) { r=0; break; }
    if(r==1&&c==127) r=0; // por DEL
return r;
}
¿qué opinas??...


Cita:
Iniciado por Eternal Idol
A simple vista parece correcta, aunque no tiene la funcionalidad exacta de la funcion de C que devuelve valores menores o mayores a cero segun el orden alfabetico (local).
Encontré que sí tiene un error... si comparo "algo" con "algo_otro" me regresaría 0 mi función compararía si string2 empieza con string1 ...
Lo que mencionas... la verdad no capto del todo los valores devueltos por strcmp()... pero si se trata de devolver valores positivos ó negativos según el alfabeto.. ¿qué te parece esto?:
Código:
int strcmp(char *str1, char *str2) {
	int i, r=0;
    for(i=0; str1[i]!='\0' && str2[i]!='\0'; i++) { // Notese agregué otra condicional
	  if(str1[i] < str2[i]) { r=-1; break; } // Si el primer carácter diferente es "menor" entonces str1 va primero
	  else if(str1[i] > str2[i]) { r=1; break; } // Lo mismo pero al revés 
    }
// Pudo no haber diferencias más no significa la palabra sea la misma...
// ejemplo "ala" y "alas" .. entonces quién tenga menos carácteres va primero
    if(strlen(str1) < strlen(str2) && r==0) r=-1;
    else if(strlen(str1) > strlen(str2) && r==0) r=1;
return r;
}
Debería regresar -1 si str1 se encuentra antes (según alfabeto) que str2, 1 si es lo contrario ó 0 si son iguales... creo ahora sí es correcto .

Cita:
Iniciado por Eternal Idol
strlen funciona bien pero str1 y str2 no tienen el tamaño suficiente para contener esas cadenas
Cierto! ímbécil de mí.... gracias por la observación.


Cita:
Iniciado por Eternal Idol
Para atoi mas o menos tenes que recorrer el array de caracteres y segun la posicion usando el 10 a la potencia de la misma y restandole 48 ('0') al numero que contenga sumarlo a un total.
También muy cierto:
Código:
int atoi(char string[7]) { // Solo hasta un int (de -32768 a 32767)
	int i, n=0, tot=0, exp;
    for(i=strlen(string)-1; i>=0; i--) {
	  if(string[i]==45) n=1; // para los negativos... sería necesario un && i==0?
	  else {
		if(i==strlen(string)-1) exp=1; // 10^0=1
		else exp*=10; // 10^*
		tot+=(string[i]-48)*exp; // Almacenamos total
	  }
    }
    if(n==1) tot*=-1; // S¡ se recibió un número negativo
return tot;
}
... Hasta dónde soporta atoi()???... creo un int es más que suficiente... Estoy suponiendo el formato de la cadena es el correcto; ¿sería necesario hacer validaciones?... que los carácteres correspondan a números, que de haber el signo "-" estubiese a el principio... y creo sería todo... ¿pero cómo regresar un valor de error sí los ocupo todos ???


Cita:
Iniciado por Eternal Idol
Las funciones de texto lo siento pero solo conozco las de Windows, que yo sepa cada Sistema Operativo las implementa de diferente manera.
Vale... ni modos... me quedaré con lo que tengo... Una vez creado mi ejecutable ya no hay bronca con lo de los stándares ¿cierto?


Cita:
Iniciado por Eternal Idol
fopen puede fallar por no existir el archivo en cuestion o por carecer de permisos sobre el mismo entre otras cosas.
Pero no hay manera de encontrar cuál de esas razónes provocó el fallo?? ...

Saludos!
Edito: Una tonteria... ¿es correcto nombrar a mis funciones como las originales?? Sé que no... por obviedad
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 25/06/2005 a las 01:25
  #14 (permalink)  
Antiguo 25/06/2005, 02:15
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años, 6 meses
Puntos: 74
Cita:
Iniciado por jam1138
Entiendo sería seguro... ¿pero será necesario??... sería desde el 33 (el 32 es espacio) hasta el 126 (127 es DEL)???... ó hasta el 254?? ... como sea, son demasiadas comparaciones en todo caso lo mejor sería al revés ¿no? ...
Depende que quieras en realidad, solo vos podes determinar que rango de caracteres deben ser aceptados por esa funcion.

Cita:
Iniciado por jam1138
Encontré que sí tiene un error... si comparo "algo" con "algo_otro" me regresaría 0 mi función compararía si string2 empieza con string1 ...
Bueno, eso lo podes solucionar comparando el tamaño de las dos cadenas, si una llego a 0 (fin de cadena) y la otra no es porque no tenes que devolver 0 como retorno.

Cita:
Iniciado por jam1138
creo un int es más que suficiente... Estoy suponiendo el formato de la cadena es el correcto; ¿sería necesario hacer validaciones?... que los carácteres correspondan a números, que de haber el signo "-" estubiese a el principio... y creo sería todo... ¿pero cómo regresar un valor de error sí los ocupo todos ???
Se supone que todas estas funciones solo las vas a usar vos con lo cual si solo vas a usar numeros contenidos en ese rango ni tenes que preocuparte. Si hay un caracter invalido podes devolver una cadena nula, le pones un 0 al primer caracter y listo.


Cita:
Iniciado por jam1138
Vale... ni modos... me quedaré con lo que tengo... Una vez creado mi ejecutable ya no hay bronca con lo de los stándares ¿cierto?
No, se podra ejecutar porque esta compilado y enlazado, pero el problema seria portarlo

Cita:
Iniciado por jam1138
Pero no hay manera de encontrar cuál de esas razónes provocó el fallo?? ...
Generalmente el valor del retorno marca el error que se produjo, en este caso si hay un error devuelve 0, en Windows existe la funcion GetLastError, no se si en MS-DOS hay alguna equivalente.

Cita:
Iniciado por jam1138
Una tonteria... ¿es correcto nombrar a mis funciones como las originales?? Sé que no... por obviedad
Depende de si el compilador te deja o no
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:13.