Cómo programar en C. Le fascina el mundo de la programación y ha decidido aprender algo más al respecto. Siguiendo los consejos de un amigo que ya es un experto, ha elegido el lenguaje C, sin duda uno de los más versátiles y aún utilizados en la escena informática.

Decidido y decidido a continuar con su idea, abrió su ahora confiable amigo Google y, buscando instrucciones sobre como programar en C, terminaste directamente aquí, esperando obtener la información necesaria sobre cómo comenzar a escribir código de trabajo.

Antes de seguir adelante y llegar al meollo del asunto, quiero hacer una premisa importante: la programación en C es un tema bastante amplio, que ciertamente no entra por completo en la página que está a punto de leer.  Pero, sí le servirá para aprender los conceptos básico y emprender el aprendizaje.

Cómo programar en C paso a paso

Pasos previos

Antes de comenzar a aprender los conceptos básicos para programa en C, déjame darle más información sobre este  lenguaje.

En primer lugar, C es un lenguaje de proposición general, capaz de realizar manipulación de datos a través de operaciones matemáticas, agrupadas en procedimientos específicos definidos funciones (de lo que te hablaré más adelante en esta guía).

Es un lenguaje de alto nivel, que utiliza una sintaxis cercana al lenguaje humano y relativamente distante del lenguaje ensamblador y del lenguaje máquina: en otras palabras, una gran parte de las instrucciones existentes en C se origina en el idioma inglés.

A diferencia de muchos lenguajes de programación conocidos hasta la fecha, el lenguaje C no prevé el uso de objetos : cada estructura de datos compleja (p. ej. formación, registro y cualquier otra entidad que no represente un tipo de datos primitivo) debe declararse manualmente y asignarse en la memoria. Sin embargo, algunos «derivados» de C (como el C ++, C # u Objective-C ) son, en cambio, lenguajes orientados a objetos.

Como descubrirá más adelante en esta guía, C es un lenguaje compilado : esto significa que, antes de que pueda funcionar, el código fuente del programa escrito debe ser «traducido» al lenguaje de máquina por un software definido compilador, que genera un archivo ejecutable que puede ser procesado por el procesador y el hardware de la máquina, gracias a la coordinación del sistema operativo.

En general, el lenguaje C es extremadamente flexible y todavía se usa en una gran cantidad de escenarios. Por ejemplo, es posible usar C para escribir un sistema operativo completo, programar dispositivos conectados, crear bibliotecas dedicadas a juegos, realizar cálculos complejos matemáticos distribuidos y así sucesivamente.

Sintaxis básica

En las siguientes secciones, pretendo explicar los conceptos básicos de la sintaxis del lenguaje C, proporcionándole las nociones necesarias sobre los componentes fundamentales de este último: al hacerlo, adquirirá las habilidades necesarias para escribir, con total autonomía, un pequeño programa de trabajo.

Primero, un programa en C se escribe usando uno o más archivos fuente, que especifica las instrucciones que se deben realizar para procesar los datos de la manera elegida.

A menos que intervenga a través de saltos, condiciones o ciclos de control especiales (hablaré de eso más adelante), el C utiliza un enfoque secuencial : esto significa que, en general, las instrucciones se ejecutan en el mismo orden en que se especifican en el código fuente.

Declaración

La declaración es la entidad básica del lenguaje C.

En términos simples, es una instrucción completa que, de alguna manera, procesa datos. Una declaración en C siempre termina con un ; (punto y coma) y puede realizar cualquier tipo de operación.

Puede agregar dos números, comparar dos cadenas de caracteres, llamar a una función, declarar o asignar un valor a una variable y mucho, mucho más.

En otras palabras, cada declaración contiene un «comando» de manipulación de datos. Por convención, cada declaración en C debe residir en una línea diferente de código fuente.

Solo para darle un ejemplo, la declaración printf («¡Hola a todos!»); contiene el comando para imprimir en la pantalla la frase «Hola a todos».

La directiva #include

Como ya le dije, un programa en C puede ejecutarse en diferentes archivos fuente: esto sucede, en particular, para mantener un cierto orden en proyectos muy grandes. Escribir todo en un solo archivo de decenas de miles de líneas de código podría volver loco al programador más paciente: ¡sería un desafío modificar una sola instrucción!

Precisamente sobre la base de este criterio, la C establece una directiva especial, como # include, que se especifica al comienzo de cada código fuente y comunica al compilador los otros archivos que se «incluirán» en el programa que se está compilando.

Solo para darle un ejemplo, casi todos los programas escritos en C comienzan con la directiva # include.  De esta manera, puede usar todos los comandos C especificados en el llamado Entrada / Salida estándar, que reside en la ruta de instalación del compilador en sí.

La biblioteca stdio.h contiene las definiciones de los comandos básicos y las constantes, para permitir que el programador manipule la entrada / salida (es decir, lo que se ve en la pantalla, lo que se adquiere a través del teclado y el mouse) y la administración de archivos. A continuación enumero los más utilizados.

  • printf (), fprintf () y sprintf () – estos son comandos que permiten, respectivamente, escribir datos en el dispositivo de salida estándar (es decir, la pantalla), en archivos y en cadenas de caracteres.
  • scanf (), fscanf () y sscanf () – estas funciones, por otro lado, toman datos respectivamente de la entrada estándar (el teclado), de los archivos y de las cadenas de caracteres.
  • fopen () y freopen () – estos comandos le permiten abrir un archivo dentro de un programa en C, para que pueda leer datos dentro de él o escribir otros.
  • fread () y fwrite () – estas funciones permiten, respectivamente, leer y escribir desde un archivo.

Junto con stdio.h, la biblioteca stdlib.h a menudo se incluye en los códigos fuente, también incluido en el entorno de desarrollo C: contiene funciones y constantes generales, incluidas las instrucciones que se utilizarán para asignar memoria y manipular los datos que contiene.

La directiva include se puede especificar de dos maneras: # include denota la inclusión de una biblioteca presente en el entorno de desarrollo predefinido, mientras que #include «estantería.h» especifica la inclusión de una biblioteca escrita por el programador y presente en la misma carpeta que el archivo fuente en el que se declara.

Tipos de datos

Como ya he explicado, C no es un lenguaje de objetos, por lo tanto, las estructuras de datos más complejas deben declararse y estructurarse en la memoria manualmente.

Sin embargo, esto no significa que este lenguaje pueda gestionar y manipular de forma nativa numerosos tipos de datos elemental, que puede asignarse a las variables necesarias para el funcionamiento del programa, adquiridas como valores de entrada o representadas como valores de retorno de las funciones.

A continuación se muestra una lista de los tipos de datos más utilizados y la información necesaria sobre cada uno de ellos.

  • Char – es el tipo de datos que denota un solo personaje y ocupar 8 bit en la memoria Para especificar una variable de este tipo, simplemente emita la declaración char variableName;, mientras que para las funciones de entrada / salida es necesario especificar el código % c para que el compilador interprete correctamente la variable a la que apunta.

 

  • int – este tipo de datos denota enteros  ocupa 16 bits de datos y puede contener valores que van desde -32767 para 32767. Su identificador, en operaciones de entrada / salida, es % i.

 

  • flotador y doble – identificar números de coma flotante números simples y dobles de coma flotante. Ocupan respectivamente 32 y 64 bit de datos y puede representar decimales con precisión de 6 dígitos (flotador) y di 10 dígitos (Doble). Los identificadores que se le asignarán son % f y fd%.

 

  • vacío – en C, este tipo de datos identifica el no vale la pena, es decir, una entidad que no ocupa ningún espacio en la memoria. Típicamente, void se especifica como un valor de retorno o como entrada en funciones que no espero (como si dijera al compilador «tenga cuidado, esta función o esta operación no devolverá ningún valor ni aceptará valores de entrada»). El vacío, como es fácil de imaginar, no tiene un identificador característico para entrada / salida.

 

Definición de variables

Estoy seguro de que de alguna manera ya conoces el concepto de variable. Una variable no es más que un «contenedor», ubicado en la memoria, que debe contener valores que puedan modificarse durante el flujo de ejecución de un programa.

Antes de continuar, me gustaría especificar la diferencia entre declaración de una variable y su definición o asignación.

En el primer caso, se informa al compilador que se debe asignar una parte de la memoria para almacenar datos; en el segundo caso, sin embargo, la memoria se llena con los datos solicitados. Es posible declarar una o más variables sin definirlas, pero no es posible definir una o más variables sin declararlas (en este caso, el compilador no sabría dónde colocar los datos en la memoria).

Declarar una variable en C es muy simple: simplemente escriba una declaración que especifique tipo de datos que la variable debe contener, su nombre y, si es necesario, el valor inicial (especificado con el operador de asignación = ).

Por ejemplo, puede declarar una variable entera vacía a través de la instrucción int variable;, o asígnele el valor inicial de 10 dando en su lugar int variable = 10.

Una vez que se ha declarado una variable, es posible manipularla en las siguientes partes del código utilizando la asignación con el operador = (p. Ej. variable = 51; ), el aumento, la disminución y todo lo que proporciona el tipo de datos especificado.

Siempre tenga en cuenta que debe usarse una variable necesariamente declarado en una parte anterior del código: C, como te expliqué, es un lenguaje secuencial, por lo tanto, ¡no puedes pedir una declaración para operar en un dato que no conoce!

En general, en C es posible referirse a las variables de dos maneras diferentes. Para las operaciones de asignación a través del operador = o las funciones de manipulación de salida (por ejemplo, printf ()), simplemente use su nombre (por ejemplo printf («% i», variable ); o suma = sumar (a, b); ).

Si, por otro lado, es necesario escribir datos en una variable usando ciertas funciones de manipulación de entrada, como la función scanf (), es necesario referirse a ella a través de un puntero al contenido en la memoria : para hacer esto, simplemente ponga el carácter antes del nombre de la variable y (p. scanf («% i», & variable); ).

Cómo programar en C: operadores principales

Al igual que algunos lenguajes de programación en el mundo, la programación en C también requiere el uso de operadores, es decir, de algunos caracteres que, dentro de una declaración, pueden adquirir un significado «especial», combinando así los datos de la declaración misma.

El lenguaje C proporciona una gran cantidad de operadores para la gestión de los casos más dispares: el más importante es el operador de asignación, es decir =, que le permite asignar un valor (o una expresión más o menos compleja) a una variable o una serie de variables.

Por ejemplo, escriba la declaración int a = 1 + 2 + 3 + 4; significa declarar una variable entera para y darle el valor inicial de 10.

Además del operador de asignación, hay muchos otros operadores en C: se dividen en cuatro categorías distintas, que explicaré a continuación.

  • Operadores aritméticos – como su nombre indica, son aquellos que permiten la ejecución de operaciones aritméticas básicas: el + denota la adición, el resta, la * multiplicación, el / la división, el ++ el aumento de uno (puede colocarse a la derecha o izquierda de la variable a aumentar), el la disminución de uno (la misma regla anterior) y, finalmente, el % devuelve el resto de la división entera entre valores.

 

  • Operadores relacionales – son útiles para relacionar un valor con otro, y son: > y < (Mayor / menor), > = y <= (mayor / menor igual a), == y ! = (igual y diferente) Se basan en el concepto de verdadero / falso: por ejemplo, en una declaración, la expresión var = 10> 5 asignar a var el valor falso o 1, ya que el número 10 es mayor que el número 5.

 

  • Operadores lógicos – siguen el mismo enfoque verdadero / falso visto anteriormente, pero se usan para comparar la conexión entre dos relaciones, típica del álgebra booleana. Ellos son && (y lógico), || (o lógico) e ! (el no).

 

  • Operadores bit a bit – permiten intervenir en los bytes individuales de los tipos de datos char e int, haciendo exclusiones, movimientos de derecha / izquierda y comparaciones. Principalmente, estos se utilizan en la escritura de módulos para sistemas operativos o controladores periféricos, ya que permiten intervenir individualmente en los bytes (o en la palabra de los archivos escritos en el ensamblaje).

 

Cheques condicionales

Como te expliqué al principio, C es un lenguaje secuencial, es decir, capaz de ejecutar instrucciones en el mismo orden en que aparecen en el código fuente del programa.

Sin embargo, hay directivas que le permiten cambiar el flujo de ejecución del programa, cambiando el orden cuando ocurren / no ocurren ciertas condiciones.

If / else

Si habla algo de inglés, le resultará fácil comprender la verificación condicional si : impartir esta instrucción en realidad significa comunicar algo como «Si se produce una condición específica, ejecute estas instrucciones «.. Sintácticamente, el control ocurre en forma

if ( condición ) {
  instrucción
}

Si lo desea, puede especificar una condición adicional utilizando la cláusula otro : combinado con el if, le permite abstraer el concepto «Si se produce una condición específica, ejecute estas instrucciones, de lo contrario (si no, ejecuta estos otros) «.

if (condición) {
  instrucción
} else {
 otra instrucción
}

Puede expresar la condición utilizando los operadores que devuelven resultados de tipo verdadero / falso; es decir, lógicos y relacionales. Solo para darle un ejemplo concreto, propongo un código que puede determinar el valor máximo entre dos variables, imprimiéndolo en la pantalla.

if (a>=b) {
  printf("El valor de la variable es mayor o igual de la variable bn");
}
else {
 printf("El valor de la variable es menor que la variable bn");
}

Si es necesario, puede «enriquecer» la construcción vista arriba con la cláusula si no si : sintácticamente similar a if, le permite especificar condiciones específicas adicionales a tener en cuenta, como se explica a continuación.

if ( condizione1 ) {
  istruzioni per gestire condizione1
}
else if ( condizione2 ) {
 istruzioni per gestire condizione2
}
else {
istruzioni per gestire tutti gli altri scenari possibili
}

Switch / case

El constructo switch / case, exactamente como el visto anteriormente, puede influir en la ejecución secuencial de las instrucciones presentes en el código fuente de un programa.

Aunque su funcionamiento es similar al del if / else (es decir, «saltar» a un conjunto dado de instrucciones cuando ocurren ciertas condiciones), se usa en escenarios bastante diferentes.

El Switch / case es adecuado para decisiones dependientes del valor de una variable y no de una operación booleana. En lenguaje humano, puedes entenderlo un poco como «salte al caso (caso) X si la variable a analizar (cambiar) toma el valor X; de lo contrario, realice la operación predeterminada (predeterminado) «.

Por ejemplo, puede usar el interruptor / caso en el caso de la administración de entrada: por ejemplo, el programa asume un comportamiento al presionar el botón para, otro al presionar el botón b, otro más con solo presionar el botón c. Y así sucesivamente. Sintácticamente, esta verificación condicional se expresa de la siguiente manera.

switch( variabile ) {
case:  valore_variabile1 
 istruzione1;
 istruzione2;
 ...
break;
case:  valore_variabile2 
 istruzione3;
 istruzione4;
 ...
break;
default:
 istruzioni per gestire altre condizioni
 break;
}

Al final de cada conjunto de instrucciones para gestionar los diversos casos, es esencial especificar la cláusula pausa para salir del ciclo de ejecución y no bloquear el programa en un bucle infinito, es decir, en una condición de la que no puede salir.

Por ejemplo, este extracto de código podría usarse para un programa que ofrece múltiples funciones al mismo tiempo, variable basada en la entrada del teclado (en este caso, se le pide al usuario que escriba las letras para o c para elegir la funcionalidad deseada).

char scelta;
printf("Scegli la funzione da utilizzare -  a  per aprire un file,  c  per chiuderlon");
scanf(%c, &scelta);
switch(scelta) {
    case 'a':
      istruzioni per aprire un file;
      break;
    case 'u':
      istruzioni per chiudere un file;
      break;
default
      printf("Comando non riconosciuto!");
      break;
}

Operadores condicional / ternary operator

Otra forma de la condición if / else de la que te hablé hace un tiempo implica el uso de operadores condicional ? y :

 Estos, de hecho, le permiten «acortar» la sintaxis del condicional mencionado anteriormente, y se usan particularmente si tiene que dar dos instrucciones diferentes dependiendo del resultado (verdadero o falso) de la expresión booleana de comparación.

condizione  ?  istruzione_se_vera  :  istruzione_se_falsa

Por ejemplo, si desea comparar dos variables y comunicar el resultado al usuario, puede usar el siguiente código.

(a>=b) ? printf("La variabile a è maggiore o uguale a b") : printf("La variabile a è minore di bn");

Las funciones

Ahora que ha entendido completamente los conceptos básicos del lenguaje C, es hora de unirlos para crear algo que funcione. Sin embargo, antes de hacer esto, es bueno enfrentar el concepto de función.

Por definición, una función en C es una parte del código que ejecuta el algoritmo necesario para obtener el resultado deseado.

En otras palabras, la función es el conjunto de declaraciones diseñadas para manipular los datos de entrada y producir datos salientes que están en línea con las necesidades del programador.

En C, las funciones pueden ser declaradas o definidas : en el primer caso, el compilador es «notificado» de los datos entrantes, los datos salientes y el nombre de la función en sí (p. ej. int add (int a, int b) ;), para permitir la preparación de las diversas áreas de memoria, mientras que en el segundo caso se especifican las declaraciones necesarias para el procesamiento de datos, como se muestra en el siguiente ejemplo.

int aggiungi(int a, int b) { //funzione per eseguire una somma
return a+b;
}

El valor que debe devolver la función se expresa mediante la cláusula regreso, especificado justo antes del final del código de función en sí; todas las declaraciones que forman parte de ella también deben estar encerradas entre dos llaves.

Después de ser declarada y definida, la función puede usarse en cualquier otra parte del código fuente, especificando donde sea necesario cualquier valor de entrada y, si es necesario, asignando el valor de salida a una variable. En el siguiente código, el valor de la variable suma se establece en 9.

int somma = aggiungi(5, 4);

En términos generales, las funciones se declaran antes del cuerpo principal (de lo que hablaré en breve) y se definen inmediatamente después. Una función declarada puede incluirse en el código que precede a su definición, pero debe definirse en el código fuente en el que se llama; de lo contrario, se generará un error durante la ejecución del programa (que, por otro lado, se compilará sin problemas).

La función «especial» main ()

Ahora que tiene todo, pero todos los conceptos básicos de este lenguaje, ha llegado el momento de explicar el funcionamiento de una función bastante especial, aquella desde la cual comienza la ejecución de cada código fuente en C: la función main ().

Representa el flujo de ejecución principal de un código fuente y contiene todas las instrucciones necesarias para procesar los datos solicitados por el programador. En otras palabras, la función main () es el «motor» de un programa en C, que le permite ejecutar el algoritmo principal diseñado por el propio programador.

En su interior, se pueden usar variables y expresiones condicionales de todo tipo, llamadas funciones que pertenecen a las bibliotecas especificadas a través de la cláusula #include, funciones declaradas y definidas dentro del mismo cuerpo del código fuente, etc. No es necesario declarar una función principal, sino que debe definirse directamente dentro del código (generalmente esto se hace después de la declaración de variables y funciones «globales», es decir, utilizable por todas las funciones de la fuente y antes de su definición).

En este punto, es absolutamente simple adivinar que un código fuente C debe contener para que se ejecute uno y solo uno función main (). En términos generales, la función principal devuelve un valor entero (que generalmente se usa para manejar errores de ejecución) y no toma valores de entrada.

int somma(a,b);

int main(void) { 
int x = 5, int y = 6, int somma;
somma = aggiungi(x, y);
printf("Il valore finale è %i", somma);
return 0;
}

int somma(a,b) {
  return a+b;
}

Ejemplo de código de trabajo

Ahora que conoce toda la información básica sobre este fascinante lenguaje, debería ser perfectamente capaz de armarlo y escribir un pequeño programa de trabajo. El primer ejemplo que quiero ilustrar es el clásico «Hello World», es decir, un programa que no hace más que imprimir el saludo «Hello, world!». A continuación te muestro el código fuente HelloWorld.c, que luego se compilará para convertirse en un archivo listo para su ejecución.

 #include   //Include le funzioni definite nella libreria di standard I/O, tra cui printf()

 int main(void) { //dichiarazione della funzione principale main
    printf("Ciao, mondo!n");  //funzione che stampa a video un testo ricevuto come parametro
    return 0;  //dichiara il valore di ritorno del main (in genere, il valore 0 denota la terminazione con successo)
}

¿Pudiste entender completamente el código ilustrado arriba? Genial! Entonces, como prueba adicional, me gustaría ofrecerle un segundo código fuente (que se llamará, por ejemplo, calc.c ), un poco más complejo, que simula el comportamiento de una calculadora muy básica.

En él, la función principal se encargará de recopilar los datos y darlos «en la comida» a una de las cuatro funciones diseñadas para realizar las operaciones principales (suma, resta, multiplicación y división). Finalmente, el principal siempre será responsable de mostrar el resultado final.

#include 
#include 

int addizione(int a, int b); //Dichiarazione delle funzioni che eseguono i calcoli
int sottrazione (int a, int b);
long moltiplicazione (int a, int b);
float divisione (int a, int b);

int main(void) {

int val1, val2, res1; //Dichiarazione delle variabili da usare nel main
 long res2;
 float val5, val6, res3;
 char scelta;

 printf("Quale delle quattro operazioni vuoi eseguire?n");
 printf("+ per addizione, - per sottrazionen");
 printf("* per moltiplicazione, / per divisionen");
 scanf("%c",&scelta); //lettura dell'input da tastiera

switch(scelta) { //ciclo switch/case che controlla l'operazione da eseguire

case '+':
 printf("Digita i valori da addizionare, separati da uno spazion");
 scanf("%i %i", &val1, &val2);
 res1=addizione(val1, val2);
 printf("Il risultato dell'operazione è %i n", res1);
 break;

case '-':
 printf("Digita i valori da sottrarre, separati da uno spazion");
 scanf("%i %i", &val1, &val2);
 res1=sottrazione(val1, val2);
 printf("Il risultato dell'operazione è %i n", res1);
 break;

case '*':
 printf("Digita i valori da moltiplicare, separati da uno spazion");
 scanf("%i %i", &val1, &val2);
 res2=moltiplicazione(val1, val2);
 printf("Il risultato dell'operazione è %ld n", res2);
 break;

case '/':
 printf("Digita i valori da dividere, separati da uno spazion");
 scanf("%f %f", &val5, &val6);
 if (val6==0)
 printf("Impossibile dividere per 0n");
 else {
 res3=divisione(val5, val6);
 printf("Il risultato dell'operazione è %f n", res3); }
 break;

default:
 printf("Scelta non valida!n");
 break;
 }
 return 0;
}

//Definizione delle funzioni per eseguire le operazioni
int addizione(int a, int b) {
 return a+b;
}

int sottrazione(int a, int b) {
 return a-b;
}

long moltiplicazione (int a, int b){
 return a*b;
}

float divisione (int a, int b) {
 return a/b;
}

Apuesto a que lograste entender perfectamente cómo funciona este programa, pero ¿tienes miedo de no poder escribir algo como esto? No tires la toalla y sigue practicando: ¡estoy seguro de que, en unas pocas horas, podrás escribir un programa que funcione para ti!

Cómo compilar y ejecutar un programa en C

Después de adquirir los conceptos básicos del lenguaje C, además de echar un vistazo a un prototipo de programa en funcionamiento, ha llegado el momento de ponerse en práctica y comprender Cómo compilar y ejecutar un programa en C utilizando los diversos sistemas operativos.

Le anuncio de inmediato que, a diferencia de Windows (que requiere software adicional), macOS y Linux están «predispuestos» de forma nativa para la compilación de códigos fuente C.

Windows

Como mencioné anteriormente, para transformar un código fuente C en un programa de trabajo, debe instalar un componente adicional para preparar el sistema operativo para esta operación: estoy hablando de Comunidad Visual Studio.

Para hacerlo, conéctese a la página de Internet del programa, presiona el botón Descarga gratuita en la caja Comunidad Visual Studio, inicie el archivo descargado (p. ej. Community.exe ).

Presiona el botón siguiente, establezca la marca de verificación junto al elemento Desarrollo de aplicaciones de escritorio con C ++ en la ventana propuesta, repita la operación con su voz Soporte de C ++ / Cli colocado en el panel derecho y, para finalizar, haga clic en el botón instalar, para cerrar la ventana de configuración al final del procedimiento.

En este punto, acceda al Bloc de notas de la carpeta Accesorios de Windows del menú inicio (al que puede acceder haciendo clic en el botón con forma de bandera, ubicado en la esquina inferior izquierda de la pantalla). Ingrese el código de su programa en la ventana del editor y, para continuar con el guardado, haga clic en el menú expediente / files ubicado en la esquina superior izquierda y selecciona el elemento Guardar como ….

Después de eso, seleccione el elemento Todos los archivos del menú desplegable Guardar como, adjunto a la pantalla de guardar que se abre, escriba el nombre de su programa, seguido de la extensión .c (p. calc.c ), en el cuadro Nombre de archivo, luego guárdelo en escritorio.

Para compilar el código fuente recién creado, inicie un Símbolo del sistema del desarrollador llamándolo desde la carpeta Visual Studio del menú inicio, escriba los comandos dentro cd% USERPROFILE% Desktop y cl programName.c, ambos seguidos por el botón presentar, para luego iniciar el programa recién creado en el escritorio (p. ej. calc.exe ) con un doble clic.

MacOS / Linux

Como te expliqué antes, MacOS y Linux están predispuestos de forma nativa a la compilación de programas escritos en C, ya que estos sistemas operativos están fuertemente basados ​​en él.

Entonces, para compilar y ejecutar un programa en C, llame al terminal de Plataforma de lanzamiento de MacOS o de Vista de actividad / menú principal de la distribución de Linux que está utilizando, escriba el comando cd ~ / Desktop (si estás en macOS) o cd ~ / Escritorio (si está utilizando Linux en su lugar) seguido de la tecla Enter y, nuevamente, el comando toque programname.c (por ejemplo, calc.c), siempre seguido de Enter.

En este punto, dejando el Terminal abierto (puede minimizarlo, si lo desea), haga doble clic en el archivo .c creado en el Escritorio, escriba el código de su programa C y guarde el archivo. Para compilarlo, llame a la Terminal y escriba el comando gcc programname.c -o programname seguido presionando el botón Enter y para ejecutarlo, ejecuta el comando ./nomeprogramma, siempre presionando sucesivamente Enter.

Le recomiendo que lea detenidamente cualquier mensaje de advertencia devuelto por el compilador: estos, en la mayoría de los casos, son un excelente punto de partida para localizar y corregir cualquier error en su programa.

Recursos utiles

Ahora que tiene todos los conceptos básicos del caso y que tiene una idea clara de como programar en C, eres perfectamente capaz de evaluar si este es el lenguaje de programación para ti.

Si es así, como le prometí al comienzo de este tutorial, me gustaría dirigirlo a otros recursos útiles que pueden ayudarlo a mejorar aún más su enfoque con el idioma en cuestión, así como aumentar su conocimiento y ayudarlo a adquirir habilidades específicas adicionales en aproximadamente.

  • notepad ++ – uno de los editores más pequeños y flexibles para escribir (y sangrar correctamente) archivos fuente de lenguaje C en Windows. Es compatible con numerosos lenguajes de programación.

 

  • Eclipse – es un marco de programación completo, útil para organizar y ordenar incluso proyectos complejos. Admite todo tipo de archivos proporcionados por programas escritos en C (archivos fuente, archivos de objetos, encabezados, bibliotecas, etc.) y permite, si es necesario, crear gráficos UML y archivos de ayuda.

 

  • Guía HTML.it C – Sin duda es un excelente recurso gratuito. Entre las páginas de esta preciosa guía, de libre acceso para cualquier persona y sin ningún registro, puede encontrar ideas y lecciones destinadas a perfeccionar sus habilidades como programador en C.

 

  • Lenguaje C – Principios de programación y manual de referencia (Kernighan / Ritchie) – es, sin duda, uno de los mejores textos para profundizar el conocimiento de C, conocido por los expertos en el campo como «K&R» (de las iniciales de los autores). Estructurado en dos partes, este texto inicialmente ofrece instrucciones sobre cómo abordar el lenguaje en cuestión, y luego se convierte en un manual real que define todas (o casi) las funciones que se pueden utilizar en los múltiples escenarios previstos. Los dos autores, Kernighan y Ritchie, son los que diseñaron y desarrollaron todo el lenguaje C.

 

  • Referencia del programador C / C ++ (Schildt) – en mi opinión, uno de los textos más completos relacionados con el lenguaje C, que debe mantenerse absolutamente en el escritorio si tiene la intención de abordar este lenguaje para uso profesional. Adecuado principalmente para usuarios más o menos avanzados, contiene numerosos ejemplos relacionados con las funciones más utilizadas. Este manual también puede ser utilizado por aquellos que, por otro lado, han decidido avanzar hacia la versión «objeto» del lenguaje C, el C ++.