To create a simple C program which prints "Hello, World" on the screen, use a text editor to create a new ﬁle (e.g.
hello.c — the ﬁle extension must be .c) containing the following source code:
puts("Hello, World"); return 0;
Let's look at this simple program line by line
This line tells the compiler to include the contents of the standard library header ﬁle stdio.h in the program. Headers are usually ﬁles containing function declarations, macros and data types, and you must include the header ﬁle before you use them. This line includes stdio.h so it can call the function puts().
See more about headers.
This line starts the deﬁnition of a function. It states the name of the function (main), the type and number of arguments it expects (void, meaning none), and the type of value that this function returns (int). Program execution starts in the main() function.
he curly braces are used in pairs to indicate where a block of code begins and ends. They can be used in a lot of ways, but in this case they indicate where the function begins and ends.
This line calls the puts() function to output text to standard output (the screen, by default), followed by a newline.
The string to be output is included within the parentheses.
"Hello, World" is the string that will be written to the screen. In C, every string literal value must be inside the double quotes "…".
See more about strings.
In C programs, every statement needs to be terminated by a semi-colon (i.e. ;).
When we deﬁned main(), we declared it as a function returning an int, meaning it needs to return an integer. In this example, we are returning the integer value 0, which is used to indicate that the program exited successfully.
Editing the program After the return 0; statement, the execution process will terminate.
Simple text editors include vim or gedit on Linux, or Notepad on Windows. Cross-platform editors also include
Visual Studio Code or Sublime Text.
The editor must create plain text ﬁles, not RTF or other any other format.
Compiling and running the program
To run the program, this source ﬁle (hello.c) ﬁrst needs to be compiled into an executable ﬁle (e.g. hello on Unix/Linux system or hello.exe on Windows). This is done using a compiler for the C language.
See more about compiling
Compile using GCC
GCC (GNU Compiler Collection) is a widely used C compiler. To use it, open a terminal, use the command line to navigate to the source ﬁle's location and then run:
gcc hello.c -o hello
If no errors are found in the the source code (hello.c), the compiler will create a binary ﬁle, the name of which is given by the argument to the -o command line option (hello). This is the ﬁnal executable ﬁle.
We can also use the warning options -Wall -Wextra -Werror, that help to identify problems that can cause the program to fail or produce unexpected results. They are not necessary for this simple program but this is way of adding them:
gcc -Wall -Wextra -Werror -o hello hello.c
Using the clang compiler
To compile the program using clang you can use:
clang -Wall -Wextra -Werror -o hello hello.c
By design, the clang command line options are similar to those of GCC.
Using the Microsoft C compiler from the command line
If using the Microsoft cl.exe compiler on a Windows system which supports Visual Studio and if all environment variables are set, this C example may be compiled using the following command which will produce an executable hello.exe within the directory the command is executed in (There are warning options such as /W3 for cl, roughly analogous to -wall etc for GCC or clang).
Executing the program
Once compiled, the binary ﬁle may then be executed by typing ./hello in the terminal. Upon execution, the compiled program will print Hello, World, followed by a newline, to the command prompt.