Here you will understand where those extra lines come from.

The compilation is the process to translate a high human-readable programming language into a language that can be understood by the computer: ones and zeros, that is saved in an executable file. The program that makes that process is called ‘compiler’.

The compiler GCC can translate languages like C, C++, Objective C, and Objective C++. Here we talk only about C compilation.

Basic usage

To use GCC you need to write the name of the program and the name of the program in the command line.

$gcc -E sourcecode.c

If the code doesn’t have problems, GCC is going to create…

Big things are made of little ones. Here I will explain in very simple words what a shell does when we type “ls -l *.c” in the command line. This can be useful to understand what is a command-line interpreter (value it) or as a resource to write your own shell in C programming.

The shell

Step 1. Each shell is a bucle starting with a prompt written on the screen like this:





username@hostname /etc/mail>

The prompt that is going to be printed is saved in a variable called PS1, set in the file /etc/bashrc.

Some people feel…

Russian Matrioska: The bigger contains itself but smaller.

What is recursion?

Recursion comes from the Latin ‘re’ that means ‘doing something again’, and ‘current that means ‘to run’.

It's something that happens again, something that is repeated, so the value of a function is defined by the application of the same function applied to smaller arguments.

Why use recursive functions?

  • Avoid writing the same code many times
  • Reduction of time complexity
  • More clarity and less time to write the code.

Why NOT use recursive functions?

  • It uses more memory.
  • Can be slow, depending on the number of recursive executions.

For these reasons, it could be better to use an iterative approach with loops as for, while, and do-while.

Why libraries?

When we code in C we create our own functions based mostly on predetermined functions that are included before the main with lines like these:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdarg.h>
#include <unistd.h>
#include <time .h>
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include <signal.h>

With time, we are going to identify some pieces of code that are repeated many times, and we can split that part and save it in a new different function, to reuse the same code multiple times. So, we are going to add a list of the prototypes (declarations) of the functions, too.


All humans share general basic characteristics and capabilities. A specific human inherits those basic characteristics and capabilities and can develop some other characteristics(attributes) and capabilities(methods).

Image about OOP [Source].

Class attributes

Attributes can be owned by the class or by the instance(object). Class attributes are owned by the class and they are shared by all the instances of the class.

Class attributes are useful when you want to:
- Store constants that don’t change from an instance to another.
- Have general accountability across all the instances. …

Natalia Vera Duran

Software Developer

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store