TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: donvalles en 02 de Abril de 2014, 09:28:30

Título: Pregunta sobre uso de GOTO - LABEL
Publicado por: donvalles en 02 de Abril de 2014, 09:28:30
Buenas, les cuento que a veces cuando estoy haciendo programas simples en C para los PIC con el CCS siento la necesidad usar el "GOTO" ya que lo usaba en el assembler y se usarlo, pero cuando hice el curso de C++ me explicaron que en C no se usa el GOTO que es una aberracion usarlo, ahora no se si eso es valido para el lenguaje de los microcontroladores y solo es valido para el C++ en la PC como C++BUILDER. Gracias por compartir sus opiniones.
Título: Re: Pregunta sobre uso de GOTO - LABEL
Publicado por: AngelGris en 02 de Abril de 2014, 09:59:25
  Efectivamente no es bueno usar GOTO en lenguaje C, incluso en C para microcontroladores.

Es más conveniente reorganizar el código para hacer uso de funciones y bloques de control.
Título: Re: Pregunta sobre uso de GOTO - LABEL
Publicado por: rivale en 02 de Abril de 2014, 11:16:20
en el ccs esta definifo el goto, y puedes utilizarlo. sin embargo, en este tipo de programación esta mal visto el usar el goto, ya que hay maneras mas apropiadas de realizar este tipo de condiciones sin usar el goto

Título: Re: Pregunta sobre uso de GOTO - LABEL
Publicado por: planeta9999 en 02 de Abril de 2014, 13:51:38


En ensamblador puedes necesitar el GOTO para hacer un bucle junto a una instrucción de salto condicional, pero en cualquier lenguaje de alto nivel, tienes estructuras específicas y más eficientes para esa tarea, en C tienes DO, DO WHILE y FOR NEXT, y para llamadas a "subrutinas" las funciones.



Título: Re: Pregunta sobre uso de GOTO - LABEL
Publicado por: MGLSOFT en 02 de Abril de 2014, 19:23:41
Finalmente, al compilar llena de saltos similares al Goto de Assembler, pero si es cierto que al usar las instrucciones de tipo estructurado, si te olvidas de algo, el compilador te avisara, mientras que si pones el goto, hay casos en que deberías retornar y te olvidas hacerlo, probablemente tu programa se ira de viaje y no encuentres el porque.