Sintaxis y comentarios
Last updated
Last updated
En esta sección vamos a comprender el uso de #include <stdio.h>
y como empezar a escribir nuestro primer código en C.
Vamos a desgranar la estructura básica de un programa en C para entender que hace cada instrucción.
#include <stdio.h>
: es una directiva de preprocesador (que también incluye C++). Indica al preprocesador que incluya el contenido del archivo "stdio.h" en el lugar donde está la directiva antes de que se realice la compilación.
#include
: Es una directiva que le dice al compilador que incluya el contenido de un archivo específico en ese punto del código
<stdio.h>
: Es el nombre del archivo de encabezado (o "header file") que se incluirá.
int main() {
: Es el comienzo de todos los programas en C, siempre es necesario tener una función main
int
: es un tipo de dato que veremos más adelante pero en este caso nos indica que la función main
devuelve un número entero (int).
main()
: es el nombre de una función especial en C. Es el lugar donde comienza la ejecución del programa. Los paréntesis después de main indican que es una función. Los paréntesis pueden contener argumentos (también conocidos como parámetros) que la función puede aceptar.
{}
: indican el inicio y el cierre de la función.
printf("¡Hola, Skilly!");
: Impime el mensaje "Hola, Skilly"
printf()
: Es una función básica de C, definida dentro de stdio.h
, cuya finalidad es imprimir texto o valores en pantalla o consola. Dentro de los paréntesis puedes poner el texto que quieras imprimir o la variable para ver el valor
return 0;
: devuelve un código de estado que indica como acabó el programa. Puedes ver más sobre el return en la siguiente sección.
}
: cierre de la función.
Eso es! TODAS LAS INSTRUCIONES TIENEN QUE TERMINAR CON PUNTO Y COMA ( ; ) Si no utilizas un
;
al final de una instrucción en C, recibirás un error de compilación ya que el compilador no sabrá dónde termina una instrucción y dónde comienza la siguiente, lo que puede llevar a interpretaciones erróneas del código.
En C, return es una palabra clave que se utiliza dentro de una función para finalizar su ejecución y, opcionalmente, devolver un valor al lugar desde donde se llamó la función.
return
Finalizar la ejecución de una función: Una vez que se alcanza la instrucción return, la función deja de ejecutarse y el control vuelve al punto desde donde fue llamada.
Devolver un valor: return puede ser seguido de una expresión o valor, el cual será el valor devuelto por la función
return
en el main()
En la función main(), que es el punto de entrada de un programa en C, la instrucción return devuelve un código de estado al sistema operativo:
return 0; generalmente indica que el programa se ejecutó con éxito.
Un valor distinto de cero generalmente indica un error o un estado especial.
return
EXIT_SUCCESS:
Indica que el programa terminó con éxito.
Normalmente tiene un valor de 0.
Debes incluir el encabezado stdlib.h
para usar EXIT_SUCCESS.
EXIT_FAILURE:
Indica que el programa terminó debido a un error o problema.
Su valor exacto puede variar, pero en muchos sistemas es 1.
También debes incluir stdlib.h
para usar EXIT_FAILURE.
Vamos a ver un ejemplo:
Dicho esto, es válido y común ver simplemente return 0; para indicar éxito y return 1; (o algún otro número distinto de cero) para indicar un error. Sin embargo, usar EXIT_SUCCESS y EXIT_FAILURE puede hacer que el código sea más legible y portátil entre diferentes plataformas.
void
Aún no hemos visto que son las funciones pero para explicar estos conceptos te haré una pequeña introducción:
Una función es un bloque de código que realiza una tarea específica. Agrupar código relacionado en funciones facilita la reutilización, el mantenimiento y la organización del código. Cada función tiene un nombre y puede ser llamada (o "invocada") desde otras partes del programa.
Ahora que ya sabes lo básico sobre funciones te hablaré de como utilizar el return
en funciones void
Las funciones que tienen un tipo de retorno void no devuelven un valor. Sin embargo, aún puedes usar la instrucción return por sí sola para salir de la función antes de que llegue al final.
return
?En el punto anterior hemos visto que las funciones void
no tienen por que llevar return
pero.. ¿en el resto de funciones que pasa si no lo ponemos?
Vale y ¿qué pasa si no pongo return
en el main()
? Esta respuesta si te va a sorprender: no debería de pasar nada, el estándar C99 y posteriores nos dicen que es equivalente a return 0;
pero esto no es una excusa para no ponerlo.
Como es mejor verlo para creerlo, vamos a ver que error nos dá si no utilizamos return
en una función que debería llevarlo.
Si aún así decides ignoralo y ejecutar el programa, la función podría devolver un valor basura (es decir, cualquier valor que estuviera en el lugar de memoria donde se espera el valor de retorno).
Puedes tener múltiples instrucciones return: Es posible tener varios puntos de salida en una función, aunque debes usarlo con cuidado para no complicar demasiado el flujo de la función.
Expresiones con return: La expresión que sigue a return (si hay alguna) se evalúa completamente antes de que se devuelva el valor.
Valores de retorno y eficiencia: A menudo, los valores devueltos por una función se almacenan en registros (en lugar de en la memoria), lo que es eficiente desde el punto de vista del rendimiento.
Los comentarios son partes de un programa que no se ejecutan pero son NECESARIOS para proporcionar información adicional sobre el funcionamiento del código
En C, cualquier texto que siga a // en una línea se considera un comentario y es ignorado por el compilador.
Los comentarios que abarcan varias líneas en C comienzan con /*
y terminan con */
. Todo el texto entre estos delimitadores se considera un comentario.
Documentación: Describe la funcionalidad del código, parámetros de funciones, retornos, propósitos de variables, etc.
Depuración: Temporalmente puedes "comentar" partes del código que no deseas ejecutar durante la depuración o pruebas.
Metainformación: Proporcionar detalles como el autor del código, fecha de creación, modificaciones, etc.
Claridad: Los comentarios deben ser claros y concisos. El objetivo es facilitar la comprensión del código, no complicarlo.
Evitar redundancia: No es necesario comentar cada línea. Si el código es autoexplicativo, no necesita un comentario.
Actualización: Si cambias la funcionalidad del código, asegúrate de actualizar también los comentarios relevantes.
No anides comentarios de múltiples líneas. Por ejemplo, el siguiente código causará un error:
Ten cuidado con los comentarios de una sola línea (//) si estás trabajando en un código que también debe ser compatible con el estándar ANSI C (C89/C90), ya que este estándar no los reconoce. En ese caso, es preferible usar únicamente comentarios de múltiples líneas (/* ... */)
.
EXPLICACIÓN stdio.h
es una parte de la biblioteca estándar de C y se traduce como "standard input-output header"
NOTA En el caso de la función main
, a menudo verás dos argumentos comunes: int argc, char *argv[]
, que se utilizan para pasar argumentos de línea de comando al programa. Sin embargo, si un programa no necesita argumentos de línea de comando, estos pueden omitirse y los paréntesis se dejarían vacíos, como en main()
.
ADVERTENCIA Espero que llegados a este punto te hayas dado cuenta de una parte fundamental de la sintaxis de C...
PARA SABER MÁS Puedes echar un vistazo a la sección de Funciones en C y luego continuar desde aquí
La respuesta es fácil, el comportamiento es indefinido. Esto significa que cualquier cosa podría suceder, desde devolver un valor basura hasta causar errores en la ejecución. ¿Sorprendid@ ?
RECOMENDADO Escribir return 0;
al final del main para indicar que ha terminado de forma éxitosa.
:heavy_exclamation_mark: NO RECOMENDADO no hacer caso a la recomendación
PARA SABER MÁS ¿Qué es el estándar C99? se refiere a una versión específica del estándar para el lenguaje de programación C, ratificado en 1999 por el comité de estándares ISO/IEC. El estándar completo se conoce como ISO/IEC 9899:1999.
CONSEJO Utiliza siempre comentarios para explicar partes de tu código y hacerle más legible para otros programadores