Autor Tema: Uno duda simple para una contestación rápida en “C”  (Leído 1484 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado NEWTOYBRAZIL

  • PIC10
  • *
  • Mensajes: 20
Uno duda simple para una contestación rápida en “C”
« en: 03 de Agosto de 2006, 22:36:15 »
 _Amigos, Estoy comenzando a leer en “C”. Compré un libro aquí en el Brasil: “PIC programação em C” basada en los copiladores CCS y yo Soy satisfecho. Instalé en mi PC el copilador y al observar la fuente sacada de “ Ejemplitos para 16F648A en C ” noté la instrucción siguiente:

/// PROGRAMA         

 void main (void)
 
 {
     signed char i;   //variable indice
 ...
     
     _ Entonces, la duda es cuánto la declaración “main”.
     _Quisiera saber porque tiene colocado un tipo “void” antes y otro después del declaración “main”?????
     _Un único tipo no sería bastante?????
     _Perdonan si la pregunta se parece primaria pero estoy comenzando y lo quisiera sacar todos lo que usted los duda…
     _Es fácil entender algunas instrucciones por ejemplo  “IF”, “DO” y “WHILE”. La pregunta está solo para el exclarecimento.
     _Abrazo el cordial.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Uno duda simple para una contestación rápida en “C”
« Respuesta #1 en: 04 de Agosto de 2006, 00:02:00 »
main es una función como cualquier otra.

1) En C, se debe especificar qué tipo de resultado devolverá la función.   Cuando no devuelve un resultado es VOID.

2) En C, también se debe especificar qué parámetros recibirá la función.  Si no recibe parámetros se indica con VOID.

Entonces:

void main (void)
{
}



Significa que main no recibirá parámetros y que no devolverá ningún resultado.

NO devuelve resultados porque en una aplicación de estas características no hay a 'quién' devolverle el resultado.

En las PCs, uno puede poner el tipo de main porque el resultado puede ser capturado a su vez por otro programa o por el sistema operativo.  En los PICs y en muchos microcontroladores sencillamente ese concepto no existe porque no es necesario.

El código debe mantenerse en un bucle infinito de ejecución, de  ahí en que es normal que veas un

while (1) {
}

o bien

while (TRUE) {
}




Espero te haya servido la explicación.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado NEWTOYBRAZIL

  • PIC10
  • *
  • Mensajes: 20
Re: Uno duda simple para una contestación rápida en “C”
« Respuesta #2 en: 04 de Agosto de 2006, 19:14:07 »
 :-)  _Gracias para la contestación, es como sospechó simple y objetivo…
       _ Abraço a todos y hasta el siguiente...
« Última modificación: 26 de Agosto de 2006, 23:01:44 por Clodoaldo »