elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Resuelto] Evitar avisos Code::Block
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto] Evitar avisos Code::Block  (Leído 4,549 veces)
CSQCasimiro

Desconectado Desconectado

Mensajes: 20



Ver Perfil
[Resuelto] Evitar avisos Code::Block
« en: 9 Septiembre 2012, 01:20 am »

hola como andan? espero que bien, yo de nuevo por acá jeje, tengo una duda con la instancia de compilación que realiza el IDE Code::Block... es posible evitar que me marque algunos avisos ? por que tengo una función que uso mucho pero por no ser muy linda a la vista del Sr.GCC siempre me tira avisos sobre la misma :P y... ya es molesto >.<

si alguien conoce un método para evitar esos avisos le agradeceré mucho :D

desde ya muchas gracias. y buena suerte.


« Última modificación: 10 Septiembre 2012, 18:14 pm por CSQCasimiro » En línea

"Mejora el Algoritmo, no el Código"
"Buscando todos los días ser mejor que ayer"
avesudra


Desconectado Desconectado

Mensajes: 724


Intentando ser mejor cada día :)


Ver Perfil
Re: [ayuda] Evitar avisos Code::Block
« Respuesta #1 en: 9 Septiembre 2012, 01:31 am »

Pon la función aquí a ver si podemos solucionar lo del aviso , de momento , en el nombre del proyecto que sale a la izquierda de la interfaz donde salen los archivos clicas y le das a Properties , después a Project Build Options (encima del OK) , y desactivas la cuarta opción : Enable all computer warnings... blablabla  :D Algunas cosas que no son buenas y pueden dar error casi seguro si las dice eh. Y si no quieres que te salga ningún aviso en ningún proyecto , te vas a Settings -> Compiler and Debugger y activas la sexta opción : Inhibit all warning messages[-w] o suspender todos los mensajes de aviso.

¡Un saludo y postea esa función!


« Última modificación: 9 Septiembre 2012, 01:46 am por avesudra » En línea

Regístrate en
CSQCasimiro

Desconectado Desconectado

Mensajes: 20



Ver Perfil
Re: [ayuda] Evitar avisos Code::Block
« Respuesta #2 en: 9 Septiembre 2012, 03:23 am »

gracias, era eso :D, lo de la función es lo de menos ,el aviso era por que mandaba un parámetro sin inicializar , pero no hacia falta por que lo sobrescribía mas tarde con malloc... muchas gracias :D

solo si alguien le sirve en algún futuro... le paso la función, crea un vector que contiene toda la información de un archivo usando malloc, solo le indicas la ruta del archivo, un puntero a la estructura a usar, y el tamaño de la estruc (sizeof)

Código
  1.  
  2. void* Carga_enMalloc(const char* ruta, void* registro, size_t tam)
  3. {
  4.    int cant;
  5.    FILE *f;
  6.    f=fopen(ruta,"rb");
  7.    error_archivo("\t ERROR: no se pudo abrir el archivo - T x 69", &f);
  8.  
  9.    cant=Cant_registros(ruta, tam);
  10.  
  11.    registro = malloc(cant*tam);
  12.  
  13.    fread(registro, tam, cant, f);
  14.  
  15.    fclose(f);
  16.  
  17.    return registro;
  18. }
  19.  

lo del aviso, se por que se genera, y que el return de la funcion esta de mas, pero cuando ya tenia el programa avansado al notarlo, no tuve ganas de cambiarlo (soy vago -_-)
« Última modificación: 9 Septiembre 2012, 03:40 am por CSQCasimiro » En línea

"Mejora el Algoritmo, no el Código"
"Buscando todos los días ser mejor que ayer"
Foxy Rider


Desconectado Desconectado

Mensajes: 2.407


Deprecated


Ver Perfil WWW
Re: [ayuda] Evitar avisos Code::Block
« Respuesta #3 en: 9 Septiembre 2012, 22:31 pm »

Código:
[alex@Sylbit Samples]$ clang test.c
test.c:11:5: warning: implicit declaration of function 'error_archivo' is invalid in C99 [-Wimplicit-function-declaration]
    error_archivo("\t ERROR: no se pudo abrir el archivo - T x 69", &f);
    ^
test.c:13:10: warning: implicit declaration of function 'Cant_registros' is invalid in C99 [-Wimplicit-function-declaration]
    cant=Cant_registros(ruta, tam);
         ^
2 warnings generated.
/tmp/test-pRTIEG.o:test.c:function Carga_enMalloc: error: undefined reference to 'error_archivo'
/tmp/test-pRTIEG.o:test.c:function Carga_enMalloc: error: undefined reference to 'Cant_registros'
clang: error: linker command failed with exit code 1 (use -v to see invocati

1) error_archivo() y cant_registros() que onda? faltan
2) La funcion la reescribiria, la veo muy mal ...pero como falta codigo hay posibilidad de que lo que yo crea erroneo, no lo sea, doy beneficio a duda ... por lo pronto noto algo sospechoso aca:

Código:
error_archivo("\t ERROR: no se pudo abrir el archivo - T x 69", &f);

f ya es puntero (FILE*), al agregarle el operador & estas pasandolo a puntero a puntero (FILE**), lo cual no creo que sea tu intencion.



Citar
no ser muy linda a la vista del Sr.GCC siempre me tira avisos sobre la misma :P y... ya es molesto >.<

El Sr. GCC compila lo que tiene que compilar, y si hay código que formalmente (en lo "estándar") es válido, pero en runtime u otro tipo de circunstancias causa problemas o es mala práctica ... tiene que avisartelo.
No tiene nada que ver con que sea "lindo" o "no" (ojalá lo hiciese, ojalá)

El problema no lo tiene GCC, lo tiene usted ... dicho en pocas palabras y con poca delicadeza

Saludos.

P.S → Rara vez los warnings ("avisos") los emite el compilador por que le parece ... usualmente es por que estas haciendo algo MAL, y el compilador te informa (o sea, es codigo legitimo, pero erroneo)
« Última modificación: 10 Septiembre 2012, 02:50 am por Alex Mtx » En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: [ayuda] Evitar avisos Code::Block
« Respuesta #4 en: 10 Septiembre 2012, 02:46 am »

gracias, era eso :D, lo de la función es lo de menos ,el aviso era por que mandaba un parámetro sin inicializar , pero no hacia falta por que lo sobrescribía mas tarde con malloc
Lo primero que haces con "registro" es asignarle un valor, por ello no debería ser un parámetro sino una variable local.

Si apenas empiezas lo mejor es utilizar el compilador en el modo mas estricto posible.

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
Re: [ayuda] Evitar avisos Code::Block
« Respuesta #5 en: 10 Septiembre 2012, 03:06 am »

Citar
Lo primero que haces con "registro" es asignarle un valor, por ello no debería ser un parámetro sino una variable local.
supongo que declarara la variable en el main y en esta funcion ya lo hace todo, la inicializa con malloc y luego la carga de datos, para devolver el puntero con todo ya hecho.

un saludo!
En línea

CSQCasimiro

Desconectado Desconectado

Mensajes: 20



Ver Perfil
Re: [ayuda] Evitar avisos Code::Block
« Respuesta #6 en: 10 Septiembre 2012, 18:13 pm »

supongo que declarara la variable en el main y en esta funcion ya lo hace todo, la inicializa con malloc y luego la carga de datos, para devolver el puntero con todo ya hecho.

un saludo!

exacto ! , por eso decía que la función era lo de menos, por que no quería que se rompan el coco entendiéndola ajaj
el aviso lo genera por que recibe una variable puntero con basura y al detectar que realizan operaciones sobre ella salta el warning, pero como me es indistinto por que la sobre escribe usando malloc, ese aviso esta de mas y era molesto jaaj
En línea

"Mejora el Algoritmo, no el Código"
"Buscando todos los días ser mejor que ayer"
xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
Re: [Resuelto] Evitar avisos Code::Block
« Respuesta #7 en: 10 Septiembre 2012, 21:28 pm »

Citar
el aviso lo genera por que recibe una variable puntero con basura

eso tiene facil solucion:

Código
  1. FILE *f=NULL;

un saludo!
En línea

CSQCasimiro

Desconectado Desconectado

Mensajes: 20



Ver Perfil
Re: [Resuelto] Evitar avisos Code::Block
« Respuesta #8 en: 10 Septiembre 2012, 21:38 pm »

eso tiene facil solucion:

Código
  1. FILE *f=NULL;

un saludo!

casi pero no, el FILE *f es local a la función conflictiva, en todo caso deberia ser =NULL el puntero a que manda al compo bufer de la función, no se molesten mas en seguir contestando, se lo agradezco de verdad la ayuda que dan, pero no les quiero sacar mas el tiempo en algo que ya solucione :$

el viernes les subo el soft completo que no es mas que uno para practicar menues, malloc, estructuras y ABM de un archivo, para que de esa manera si alguien en algún futuro busca códigos de ejemplo de eso lo encuentre :P
En línea

"Mejora el Algoritmo, no el Código"
"Buscando todos los días ser mejor que ayer"
xiruko


Desconectado Desconectado

Mensajes: 438


Ver Perfil
Re: [Resuelto] Evitar avisos Code::Block
« Respuesta #9 en: 10 Septiembre 2012, 23:23 pm »

perdona me confundi con lo de antes, me referia a:

Código
  1. char *registro=NULL

en el main. aprovecho para decirte que no se por que haces que registro sea un puntero a void cuando esta apuntando a una cadena de caracteres. quizas algun warning era por eso... ni idea la verdad sin ver el code entero.

en fin solo queria aclarar lo de antes :silbar:

un saludo!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
HP se queda parpadeando el block mayus y el block num simultaneamente-!!!
Hardware
genomma 0 18,982 Último mensaje 10 Agosto 2010, 06:10 am
por genomma
[c++][IDE error] Code::block crash al debbugear.
Programación C/C++
anonimo12121 2 2,759 Último mensaje 18 Febrero 2012, 17:06 pm
por Eternal Idol
[BATCH] [CODE] PUNTO DE VENTA [RESUELTO]
Scripting
ZeroxHack 3 3,731 Último mensaje 21 Agosto 2012, 02:55 am
por Eleкtro
[Resuelto] Codigo de Apertura de PHP en Code Igniter
PHP
danny920825 2 2,823 Último mensaje 28 Junio 2017, 22:47 pm
por danny920825
Which code block uses bubble sort?
Programación General
pixielott 1 2,331 Último mensaje 15 Septiembre 2020, 17:30 pm
por MCKSys Argentina
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines