<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Gilbert Adikankwu</title>
    <description>The latest articles on DEV Community by Gilbert Adikankwu (@functionguyy).</description>
    <link>https://dev.to/functionguyy</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1086347%2F03cab594-b47d-413d-8a2d-d9f81e1068be.jpeg</url>
      <title>DEV Community: Gilbert Adikankwu</title>
      <link>https://dev.to/functionguyy</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/functionguyy"/>
    <language>en</language>
    <item>
      <title>sysfs implementation in i915</title>
      <dc:creator>Gilbert Adikankwu</dc:creator>
      <pubDate>Mon, 30 Oct 2023 06:40:42 +0000</pubDate>
      <link>https://dev.to/functionguyy/sysfs-implementation-in-i915-1onl</link>
      <guid>https://dev.to/functionguyy/sysfs-implementation-in-i915-1onl</guid>
      <description>&lt;p&gt;In this article, I explain my understanding of the sysfs implementation of i915. I will attempt to analyze an entry to aid the explanation. &lt;/p&gt;

&lt;h2&gt;
  
  
  What is sysfs?
&lt;/h2&gt;

&lt;p&gt;Sysfs is a virtual file system that provides a way to export kernel data structures and attributes (think functionality) to the userspace. The data structures are created with objects and are represented as directories and subdirectories in &lt;code&gt;/sys&lt;/code&gt; while the attributes are files inside these directories. The files contain&lt;br&gt;
kernel-generated information that provides functionality to users.  &lt;/p&gt;

&lt;h2&gt;
  
  
  What is i915?
&lt;/h2&gt;

&lt;p&gt;i915 driver is an open-source graphics driver for Intel integrated graphics chipset. It supports the Intel i915 family of chipsets, including the Intel HD Graphics 2000/3000/4000/5000 series graphics processors.&lt;/p&gt;

&lt;h2&gt;
  
  
  sysfs interface of i915
&lt;/h2&gt;

&lt;p&gt;The sysfs interface of the i915 driver provides a way to access and modify various parameters of the driver and the hardware it controls. &lt;/p&gt;

&lt;p&gt;The sysfs interface of the &lt;strong&gt;i915&lt;/strong&gt; driver is organized into a hierarchy of directories and files. The top-level directory is &lt;code&gt;/sys/class/drm&lt;/code&gt;. This directory contains one subdirectory for each graphics device driver that it manages. &lt;code&gt;sys/class/drm/card0&lt;/code&gt;is the subdirectory for the i915 device driver. Each subdirectory is named after the device’s unique identifier, which is typically a combination of the bus type and address.&lt;/p&gt;

&lt;p&gt;The focus of this article is to analyze structs that created this entry &lt;code&gt;/sys/class/drm/card0/gt&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;drm&lt;/code&gt; is a framework that manages device drivers. &lt;code&gt;i915&lt;/code&gt; is a device driver and &lt;code&gt;gt&lt;/code&gt; is a device.&lt;/p&gt;

&lt;p&gt;The &lt;code&gt;gt&lt;/code&gt; device entry shows up as a subdirectory in the i915 sysfs implementation. Things to know about how sysfs entry is created:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sysfs entries for kobjects are always directories. A call to kobject_add results in the creation of a directory in sysfs. Usually, that directory contains one or more attributes.&lt;/li&gt;
&lt;li&gt;The name assigned to the &lt;em&gt;kobject&lt;/em&gt; is the name used for the sysfs directory.&lt;/li&gt;
&lt;li&gt;The sysfs entry is located in the directory corresponding to the kobject's parent pointer. If parent is NULL when kobject_add is called, it is set to the kobject embedded in the new kobject's kset. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;gt&lt;/code&gt; is a kobject. A kobject can be either a device which shows up as a subdirectory in sysfs or a device attribute with shows up as a file inside a device subdirectory in sysfs. The major struct behind every device in sysfs is &lt;code&gt;struct device&lt;/code&gt;. This struct contains information that determines the hierarchy position of the device in the sysfs interface. For the DRM framework, &lt;code&gt;struct device&lt;/code&gt; is embedded inside &lt;code&gt;struct drm_minor&lt;/code&gt;. &lt;code&gt;struct drm_minor&lt;/code&gt; represents a DRM minor number for the device node in /dev. The kernel uses the minor to know the device a device driver is referring to.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;struct drm_minor&lt;/code&gt; and &lt;code&gt;struct device&lt;/code&gt; are embedded inside &lt;code&gt;struct drm_device&lt;/code&gt;. Then &lt;code&gt;struct drm_device&lt;/code&gt; is embedded inside &lt;code&gt;struct drm_i915_private&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;It is &lt;code&gt;struct drm_i915_private&lt;/code&gt; that is used to create the &lt;code&gt;gt&lt;/code&gt; subdirectory with the function below.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;void i915_setup_sysfs(struct drm_i915_private *dev_priv);&lt;/code&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>A Comprehensive Introduction to Variables in C Programming</title>
      <dc:creator>Gilbert Adikankwu</dc:creator>
      <pubDate>Mon, 24 Jul 2023 15:54:46 +0000</pubDate>
      <link>https://dev.to/functionguyy/a-comprehensive-introduction-to-variables-in-c-programming-298k</link>
      <guid>https://dev.to/functionguyy/a-comprehensive-introduction-to-variables-in-c-programming-298k</guid>
      <description>&lt;p&gt;All C programs, whatever their size, consist of functions and variables. A function contains statements that specify the computing operations to be done, and variables store values used during the computation.&lt;/p&gt;

&lt;p&gt;Variables are one of the basic data objects manipulated in a program. They make it easy for programmers to build programs that can store and retrieve data for different kinds of task with a minimal amount of code. Without Variables, it is difficult to get much done with your program. &lt;/p&gt;

&lt;p&gt;In this article, you will learn the meaning of a variable in C programming, how to declare a variable and assign values to it. You will learn about the different types of variables and the range of values they can store. You will learn about the ASCII character set. And you will learn how to print the values stored in the different types of variables with the C standard library functions &lt;code&gt;printf&lt;/code&gt; and &lt;code&gt;putchar&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Table Of Content
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Prerequisites&lt;/li&gt;
&lt;li&gt;What is a variable in C&lt;/li&gt;
&lt;li&gt;What is an Identifier&lt;/li&gt;
&lt;li&gt;
What is a Type

&lt;ul&gt;
&lt;li&gt;Fundamental Types in C&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;How to declare a Variable in C&lt;/li&gt;
&lt;li&gt;What happens in your computer when you declare a Variable in C&lt;/li&gt;
&lt;li&gt;
Importance of specifying a Type in a variable declaration

&lt;ul&gt;
&lt;li&gt;
Integer types

&lt;ul&gt;
&lt;li&gt;How to print the value in an integer type variable&lt;/li&gt;
&lt;li&gt;Signed vs Unsigned Integer type&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;
Character types

&lt;ul&gt;
&lt;li&gt;How to print the value in a Character type variable&lt;/li&gt;
&lt;li&gt;Similarities between character constants and integer types&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;Floating types&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
Conclusion

&lt;ul&gt;
&lt;li&gt;References&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;To enjoy the full experience of this article, you should have the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A basic understanding of how to compile a C source file using a compiler and how to run the output file of compiled C source file in a terminal.&lt;/li&gt;
&lt;li&gt;A basic understanding of how to use the &lt;code&gt;printf&lt;/code&gt; function to print text&lt;/li&gt;
&lt;li&gt;A text editor&lt;/li&gt;
&lt;li&gt;A cup of water or coffee&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Every code in this article is written to adhere to &lt;a href="https://github.com/alx-tools/Betty/wiki#1-coding-style"&gt;betty coding style&lt;/a&gt; and compiled on Ubuntu 20.04 LTS using &lt;code&gt;gcc&lt;/code&gt;, using the options &lt;code&gt;-wall -Werror -Wextra -pedantic -std=gnu89&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What is a Variable in C?
&lt;/h2&gt;

&lt;p&gt;In C, a Variable is a symbolic name that represents a particular storage location on the hard drive, or any memory device connected to the machine executing your program.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"In C, all variables must be declared before they are  used, usually at the beginning of the Function before any executable statements." - The C programming language book (Brian W. Kernighan &amp;amp; Dennis M. Ritchie)"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To declare a Variable in C programming language, we first specify the Type of the Variable, and then its Identifier.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="cm"&gt;/* syntax of a variable declaration in C */&lt;/span&gt;
&lt;span class="n"&gt;Type&lt;/span&gt; &lt;span class="n"&gt;identifier&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="cm"&gt;/* declaration of a single variable */&lt;/span&gt;
&lt;span class="n"&gt;Type&lt;/span&gt; &lt;span class="n"&gt;identifier_1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;identifier_2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;identifier_N&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="cm"&gt;/* declaration of multiple variables with the same Type */&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What is an Identifier
&lt;/h2&gt;

&lt;p&gt;An identifier is any name you provide for Variables, Functions, Macros, and other data Objects in your C program. You're required to provide a valid Identifier.&lt;/p&gt;

&lt;p&gt;The following list indicates the rules you must follow to construct a valid Identifier in C:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It must start with an alphabet (the underscore &lt;code&gt;_&lt;/code&gt; counts as an alphabet).&lt;/li&gt;
&lt;li&gt;It must not have any spaces in between.&lt;/li&gt;
&lt;li&gt;It must be unique and must not be a Keyword in C.&lt;/li&gt;
&lt;li&gt;It can be made up of uppercase or lowercase alphabetic characters, the ten digits (0 - 9) and the underscore &lt;code&gt;_&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="cm"&gt;/* example of valid identifiers */&lt;/span&gt;
&lt;span class="n"&gt;sum&lt;/span&gt; 
&lt;span class="n"&gt;flag&lt;/span&gt;
&lt;span class="n"&gt;i&lt;/span&gt;
&lt;span class="n"&gt;Sum&lt;/span&gt;
&lt;span class="n"&gt;mem_alloc&lt;/span&gt;
&lt;span class="n"&gt;x5j6&lt;/span&gt;
&lt;span class="n"&gt;SUM&lt;/span&gt;
&lt;span class="cm"&gt;/* examples of invalid identifiers */&lt;/span&gt;
&lt;span class="n"&gt;sum&lt;/span&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="cm"&gt;/* $ is not a valid character */&lt;/span&gt;
&lt;span class="n"&gt;piece&lt;/span&gt; &lt;span class="n"&gt;flag&lt;/span&gt; &lt;span class="cm"&gt;/* Embedded spaces are not supported */&lt;/span&gt;
&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="n"&gt;spencer&lt;/span&gt; &lt;span class="cm"&gt;/* identifier cannot start with a number */&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="cm"&gt;/* int is a keyword in C */&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Uppercase and lowercase letters are distinct in C. Therefore &lt;code&gt;sum&lt;/code&gt;, &lt;code&gt;Sum&lt;/code&gt;, and &lt;code&gt;SUM&lt;/code&gt; are different identifiers.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Programming best practices recommend that you construct identifiers that reflect their intended use. Also, a recommended naming convention amongst C programmers is to use only UPPERCASE letters to construct identifiers that represent Macros  &lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What is a Type
&lt;/h2&gt;

&lt;p&gt;A Type is a specification that describes the kind of values an identifier can store or manipulate.&lt;/p&gt;

&lt;p&gt;C is a statically typed language. This means all identifiers must be associated with a Type.&lt;/p&gt;

&lt;p&gt;The Type specified for an Identifier indicates the following to the compiler:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The kind of values that are acceptable to be stored through the Identifier&lt;/li&gt;
&lt;li&gt;The acceptable range of values that can be stored through the Identifier.&lt;/li&gt;
&lt;li&gt;The amount of storage space that should be allocated for the Identifier.&lt;/li&gt;
&lt;li&gt;The arithmetic computation that should be allowed to be performed with the Identifier.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If any of the above conditions cannot be satisfied for the Type you have specified for an Identifier, the compiler generates an error message.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fundamental Types In C
&lt;/h2&gt;

&lt;p&gt;C supports three (3) fundamental Types:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Integer types&lt;/li&gt;
&lt;li&gt;Floating types&lt;/li&gt;
&lt;li&gt;Character types&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To specify any of the fundamental types in a variable declaration, we use the dedicated keywords provided for each Type in the C standard:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;int&lt;/code&gt; is the keyword used to specify the Integer type.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;float&lt;/code&gt; is the keyword used to specify the Floating type.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;char&lt;/code&gt; is the keyword used to specify the Character type.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You might have heard or seen people use the term Datatype and wonder what the difference is between Datatype and Type. Although both terms can be used interchangeably, they have slightly different meanings; Type refers to a specification while Datatype refers to data that fits a Type specification.&lt;/p&gt;

&lt;p&gt;So when we specify a &lt;em&gt;Type&lt;/em&gt; in a variable declaration, we're instructing the compiler to make a variable that can store &lt;em&gt;Datatypes&lt;/em&gt; that fits the specifications of the Type specified for the Variable.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to declare a Variable in C
&lt;/h2&gt;

&lt;p&gt;To declare a variable in C programming, we first specify the Type of the variable, and then its Identifier. For example, we might declare variables "height" and "profit" as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="cm"&gt;/* examples of variable declaration */&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;height&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;profit&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first declaration states that &lt;code&gt;height&lt;/code&gt; is a variable of Type &lt;code&gt;int&lt;/code&gt;, which means that &lt;code&gt;height&lt;/code&gt; can store whole numbers. The second declaration states that &lt;code&gt;profit&lt;/code&gt; is a variable of Type &lt;code&gt;float&lt;/code&gt;, which means that &lt;code&gt;profit&lt;/code&gt; can store numbers with digits after the decimal point.&lt;/p&gt;

&lt;p&gt;After a variable has been declared, it can be initialized (given a value) by means of assignment:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="cm"&gt;/* examples of variable declaration */&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;height&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;profit&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="cm"&gt;/* initialize the variables */&lt;/span&gt;
&lt;span class="n"&gt;height&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;profit&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;21&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;50&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What happens in your computer when you declare a variable in C
&lt;/h2&gt;

&lt;p&gt;When you declare a variable in C programming, you essentially introduce the variable to the program. This declaration informs the compiler to allocate storage space for the variable on the hard drive of the computer executing the program.&lt;/p&gt;

&lt;p&gt;While compiling your program, the compiler generates machine code that will instruct your computer to allocate a designated portion of memory on its hard drive for every declared variable in your program. The compiler then subsequently assigns corresponding Identifiers to the allocated memory locations. This allocated memory serves as storage for the values assigned to the variables.&lt;/p&gt;

&lt;p&gt;The CPU architecture of your computer determines the precise amount of memory that will be allocated for each variable's Type. Different CPU architectures have distinct memory allocation specifications for the fundamental C Types.&lt;/p&gt;

&lt;p&gt;Memory allocation specifications are generally defined in &lt;strong&gt;Bytes&lt;/strong&gt; but machines translate memory allocation in &lt;strong&gt;Bits&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="n"&gt;Byte&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt; &lt;span class="n"&gt;Bits&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The following table shows the memory that will be allocated for variables declared with the fundamental C types on most 64-bit Linux machines:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Memory allocation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;char&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1 Byte&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;4 Byte&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;float&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;4 Byte&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;To obtain the memory allocation specifications for each of the fundamental C Types on your computer, pass the Type keyword as an argument to &lt;code&gt;sizeof&lt;/code&gt; (a C built-in operator which measures the amount of storage required for a Type) and print its return value with the &lt;code&gt;printf&lt;/code&gt; function.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Let's create a program that prints out the memory allocation specification for each of the fundamental C types on our computer:&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;span class="cm"&gt;/**
 * main - Entry point of the program 
 * Description: Program will print the memory allocation specification 
 * for each of the C fundamental types using   
 * 
 * Return: 0 if program successfully executes
 */&lt;/span&gt;

&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="cm"&gt;/* print the size of the C fundamental types */&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Size of type 'char' on my computer is: %lu bytes&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;,"&lt;/span&gt; &lt;span class="k"&gt;sizeof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;char&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Size of type 'int' on my computer is: %lu bytes&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;sizeof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Size of type 'float' on my computer is %lu bytes&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;sizeof&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;float&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvblv8s68p3d7t9vopejs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvblv8s68p3d7t9vopejs.png" alt="My Ubuntu 20.04 LTS terminal showing the output memory allocation specification generated by running the above program" width="800" height="95"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We use a format specifier with the &lt;code&gt;printf&lt;/code&gt; function to print the value stored in a variable. In the above code snippet, the format specifier &lt;code&gt;%lu&lt;/code&gt; is used in the &lt;code&gt;printf&lt;/code&gt; function to print the value returned by the &lt;code&gt;sizeof&lt;/code&gt; function because its return value is an unsigned Integer type (more details about this Integer type will be discussed soon).&lt;/p&gt;

&lt;h2&gt;
  
  
  Importance of specifying a Type for a variable declaration
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Type specified for a variable determines the range of values that can be stored through the variable.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;C takes portability (the ability of your program to compile on different kinds of machines) seriously and bothers to tell you what ranges of values are guaranteed to be safe for each Type. In the following sections, you will learn more about each Type and its guaranteed range of values.&lt;/p&gt;

&lt;h3&gt;
  
  
  Integer type
&lt;/h3&gt;

&lt;p&gt;An Integer type variable will store integer constants. &lt;code&gt;int&lt;/code&gt; is the keyword that is used to specify the Integer type.&lt;/p&gt;

&lt;p&gt;An integer constant consists of a sequence of one or more digits. A minus sign before the sequence indicates that the value is negative. No embedded spaces are permitted between the digits, and values larger than 999 cannot be expressed using commas. C allows integer constants to be written in decimal notation (base 10), octal notation (base 8), or hexadecimal notation (base 16).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Decimal&lt;/strong&gt; notation of integer constants contains numbers between 0 and 9 but they must not start with a zero:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="cm"&gt;/* examples of valid integer constants */&lt;/span&gt;
&lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="mi"&gt;255&lt;/span&gt;
&lt;span class="mi"&gt;11000&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Octal&lt;/em&gt; notation of integer constants contains only numbers between 0 and 7, and must start with a zero:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="cm"&gt;/* example of valid octal integer constants */&lt;/span&gt;
&lt;span class="mo"&gt;017&lt;/span&gt;
&lt;span class="mo"&gt;0377&lt;/span&gt;
&lt;span class="mo"&gt;077777&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;Hexadecimal&lt;/em&gt; notation of integer constants contains numbers between 0 and 9 and letters between a and f, and must start with 0x:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="cm"&gt;/* examples of valid hexidecimal integer constants */&lt;/span&gt;
&lt;span class="mh"&gt;0xff&lt;/span&gt;
&lt;span class="mh"&gt;0xfF&lt;/span&gt;
&lt;span class="mh"&gt;0x1A&lt;/span&gt;
&lt;span class="mh"&gt;0xAB&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Integers are always stored in binary regardless of what notation we have used to express them in our codes. These notations are nothing more than an alternative way to write numbers.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;An Integer type variable can be declared as one of two forms; &lt;strong&gt;signed&lt;/strong&gt; or &lt;strong&gt;unsigned&lt;/strong&gt;. By default, a variable declared with the &lt;code&gt;int&lt;/code&gt; keyword is a &lt;strong&gt;signed&lt;/strong&gt; Integer type variable. This means such a variable can store either negative or positive integer constants.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Let's create a program that assigns a random number to a variable. The randomly assigned number could be negative or positive. The program will be able to store a different value every time we will run it:&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;
&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;stdlib.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;time.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;span class="cm"&gt;/**
 * main - Entry point of the program 
 * Description: Program will assign a random number to a variable and print it 
 * whether the number stored in the variable is positive or negative followed by
 * a new line.
 * 
 * Return: 0 if program successfully executes
 */&lt;/span&gt;

&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="cm"&gt;/* variable declaration */&lt;/span&gt;
    &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="cm"&gt;/* assign random number to variable n */&lt;/span&gt;
    &lt;span class="n"&gt;srand&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
    &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;rand&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;RAND_MAX&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="cm"&gt;/* check if number assigned to the variable n is positive or negative */&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"%d is negative&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"%d is zero&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"%d is positive&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

     &lt;span class="cm"&gt;/* exit program after successful execution */&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The focus of the above code snippet is to show you that the variable &lt;code&gt;n&lt;/code&gt; declared with the &lt;code&gt;int&lt;/code&gt; keyword is a &lt;strong&gt;signed&lt;/strong&gt; integer type variable. You don't have to understand what &lt;code&gt;rand&lt;/code&gt;, &lt;code&gt;srand&lt;/code&gt;, and &lt;code&gt;RAND_MAX&lt;/code&gt; do.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7y8w5errjb8piu8wmdd3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7y8w5errjb8piu8wmdd3.png" alt="My Ubuntu 20.04 LTS terminal showing output generated by the above program when it is ran 5 times" width="800" height="164"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From the output, you can see every time the program (output file of the compiled source code) is executed, it prints a different random value (either positive or negative). The random value printed is first stored in the variable &lt;code&gt;n&lt;/code&gt;. Then &lt;code&gt;n&lt;/code&gt; is used in the &lt;code&gt;if/elif/else&lt;/code&gt; conditional block to determine which &lt;code&gt;printf&lt;/code&gt; statement should be executed.&lt;/p&gt;

&lt;p&gt;To declare an &lt;strong&gt;unsigned&lt;/strong&gt; Integer type variable, we use the &lt;code&gt;unsigned int&lt;/code&gt; keyword. An &lt;strong&gt;unsigned&lt;/strong&gt; Integer type variable can only store positive integer constants. (You can test this by changing the Type keyword in the declaration of the variable &lt;code&gt;n&lt;/code&gt; from &lt;code&gt;int&lt;/code&gt; to &lt;code&gt;unsigned int&lt;/code&gt;. Then recompile the program and run it).&lt;/p&gt;

&lt;p&gt;For both &lt;strong&gt;signed&lt;/strong&gt; and &lt;strong&gt;unsigned&lt;/strong&gt; integer types, C provides 3 subtypes to allow us to construct an Integer type variable that meets our needs. The following keywords are used to specify each of the subtypes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;short int&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;unsigned short int&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;int&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;unsigned int&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;long int&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;unsigned long int&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;C allows us to abbreviate these Integer subtypes keywords in our codes by dropping the word &lt;code&gt;int&lt;/code&gt;. For example, &lt;code&gt;unsigned short int&lt;/code&gt; can be abbreviated to &lt;code&gt;unsigned short&lt;/code&gt; and &lt;code&gt;long int&lt;/code&gt; can be shortened to just &lt;code&gt;long&lt;/code&gt;. Omitting &lt;code&gt;int&lt;/code&gt; this way is a widespread practice among C programmers.&lt;/p&gt;

&lt;p&gt;The integer Type you specify in a variable's declaration determines the memory allocation and the range of values that can be stored through the variable. The range of values represented by each integer Type and their memory allocation varies from machine to machine. The following table shows the memory allocation for each integer Type and the range of values that they represent on most 64-bit Linux machines:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Type&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Memory Allocation&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Value Range&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;short&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;2 Bytes&lt;/td&gt;
&lt;td&gt;-32,768 to 32,767&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unsigned short&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;2 Bytes&lt;/td&gt;
&lt;td&gt;0 to 65,535&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;4 Bytes&lt;/td&gt;
&lt;td&gt;-2,147,483,648 to 2,147,483,647&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unsigned int&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;4 Bytes&lt;/td&gt;
&lt;td&gt;0 to 4,294,967,295&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;long&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;8 Bytes&lt;/td&gt;
&lt;td&gt;-9,233,372,036,854,775,808 to 9,223,372,036,854,775,807&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unsigned long&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;8 Bytes&lt;/td&gt;
&lt;td&gt;0 to 18,446,744,073,709,551,615&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h4&gt;
  
  
  How to print the value in an Integer type Variable
&lt;/h4&gt;

&lt;p&gt;The following table shows each Integer subtype and its &lt;code&gt;printf&lt;/code&gt; format specifier:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;
&lt;code&gt;printf&lt;/code&gt; format specifier (Decimal, Octal, Hexadecimal)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;short&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;%hd&lt;/code&gt;, &lt;code&gt;%ho&lt;/code&gt;, &lt;code&gt;%hx&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unsigned short&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;%hu&lt;/code&gt;, &lt;code&gt;%hu&lt;/code&gt;, &lt;code&gt;%hx&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;int&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;%d&lt;/code&gt;, &lt;code&gt;%o&lt;/code&gt;, &lt;code&gt;%x&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unsigned int&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;%u&lt;/code&gt;, &lt;code&gt;%o&lt;/code&gt;, &lt;code&gt;%x&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;long&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;%ld&lt;/code&gt;, &lt;code&gt;%lo&lt;/code&gt;, &lt;code&gt;%lx&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unsigned long&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;%lu&lt;/code&gt;, &lt;code&gt;%lo&lt;/code&gt;, &lt;code&gt;%lx&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;One way to determine the value ranges of the integer types on our computer's implementation is to check the &lt;code&gt;limits.h&lt;/code&gt; header, which is part of the standard library. The &lt;code&gt;limits.h&lt;/code&gt; header defines macros (Identifiers that represent statements or expressions) that represent the smallest and largest values of each Integer type.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Let's create a program that assigns to variables, macros defined for each integer type in the &lt;code&gt;limits.h&lt;/code&gt; header. And then prints out the values stored in each of the variables using the format specifier for their type:&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;limits.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;span class="cm"&gt;/**
 * main - Entry point of the program 
 * Description: Program will print the range values for each integer type
 * 
 * Return: 0 if program successfully executes
 */&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="cm"&gt;/* variable declaration */&lt;/span&gt;
    &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;integerVarMin&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;integerVarMax&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;unsigned&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;uIntegerVarMax&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;short&lt;/span&gt; &lt;span class="n"&gt;sIntegerVarMin&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;short&lt;/span&gt; &lt;span class="n"&gt;sIntegerVarMax&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;unsigned&lt;/span&gt; &lt;span class="kt"&gt;short&lt;/span&gt; &lt;span class="n"&gt;u_sIntegerVarMax&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="n"&gt;LIntegerVarMin&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="n"&gt;LIntegerVarMax&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;unsigned&lt;/span&gt; &lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="n"&gt;u_LIntegerVarMax&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;


    &lt;span class="cm"&gt;/* Assign to each variable the macros defined 
     * for their integer type in the limits.h header 
     */&lt;/span&gt; 
    &lt;span class="n"&gt;integerVarMin&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;INT_MIN&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;integerVarMax&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;INT_MAX&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;uIntegerVarMax&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;UINT_MAX&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;sIntegerVarMin&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;SHRT_MIN&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;sIntegerVarMax&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;SHRT_MAX&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;u_sIntegerVarMax&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;USHRT_MAX&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;LIntegerVarMin&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;LONG_MIN&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;LIntegerVarMax&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;LONG_MAX&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;u_LIntegerVarMax&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ULONG_MAX&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="cm"&gt;/* Use printf and format specifiers to print values stored in each variable */&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"The min value that can be stored in an INT variable is: %d&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;integerVarMin&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"The max value that can be stored in an INT variable is: %d&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;integerVarMax&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"The max value that can be stored in an UNSIGNED INT variable is: %u&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;uIntegerVarMax&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"The min value that can be stored in a SHORT INT variable is: %hd&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sIntegerVarMin&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"The max value that can be stored in a SHORT INT variable is: %hd&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sIntegerVarMax&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"The max value that can be stored in an UNSIGNED SHORT INT variable is: %hu&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;u_sIntegerVarMax&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"The min value that can be stored in an LONG INT variable is: %ld&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;LIntegerVarMin&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"The max value that can be stored in an LONG INT variable is: %ld&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;LIntegerVarMax&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"The max value that can be stored in an UNSIGNED LONG INT variable is: %lu&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;u_LIntegerVarMax&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="cm"&gt;/* exit program after successful execution */&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7fnzywmj5lim1vzxqe4k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7fnzywmj5lim1vzxqe4k.png" alt="My Ubuntu 20.04 LTS terminal showing the output of the above program" width="800" height="165"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Signed vs Unsigned Integer type
&lt;/h4&gt;

&lt;p&gt;In C programming, unsigned Integer type variables are preferred over signed Integer type variables because &lt;a href="https://embeddedgurus.com/stack-overflow/2009/05/signed-versus-unsigned-integers/"&gt;unsigned integers are more efficient&lt;/a&gt;. Also, unsigned Integers produce defined results for &lt;a href="https://embeddedgurus.com/stack-overflow/2009/08/a-tutorial-on-signed-and-unsigned-integers/#:~:text=To%20convert%20a%20signed%20integer%20to%20an%20unsigned,c%3B%20b%20%3D%20%28unsigned%20int%29a%3B%20c%20%3D%20%28int%29b%3B"&gt;modulo-arithmetic overflow&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Character types
&lt;/h3&gt;

&lt;p&gt;A Character type variable will store character constants. &lt;code&gt;char&lt;/code&gt; is the keyword that is used to specify the Character type.&lt;/p&gt;

&lt;p&gt;In C programming, a single character in a single quote &lt;code&gt;''&lt;/code&gt; forms a character constant.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="sc"&gt;'v'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A character constant is a character that is represented in a character set. A character set is an encoding scheme used to represent text characters with numeric codes that computers understand.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;American Standard Code for Information Interchange(ASCII)&lt;/strong&gt; is a popular character set used as a standard for character encoding in computers and communication systems. It uses integer constants to encode text characters. &lt;strong&gt;ASCII&lt;/strong&gt; is the underlying character set on most Linux/Unix-like machines.&lt;/p&gt;

&lt;p&gt;The following characters are represented in &lt;strong&gt;ASCII&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Character constants of uppercase and lowercase letters of the alphabet.&lt;/li&gt;
&lt;li&gt;Character constants of digits 0 to 9&lt;/li&gt;
&lt;li&gt;Character constants of C special characters.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;ASCII&lt;/strong&gt; is capable of representing 128 different characters:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="cm"&gt;/* examples of characters represented in ASCII */&lt;/span&gt;
&lt;span class="sc"&gt;'b'&lt;/span&gt; &lt;span class="cm"&gt;/* lowercase letter b */&lt;/span&gt;
&lt;span class="sc"&gt;'\n'&lt;/span&gt; &lt;span class="cm"&gt;/* C special character */&lt;/span&gt;
&lt;span class="sc"&gt;'0'&lt;/span&gt; &lt;span class="cm"&gt;/* digit 0 */&lt;/span&gt;
&lt;span class="sc"&gt;' '&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="cm"&gt;/* space */&lt;/span&gt;
&lt;span class="sc"&gt;'B'&lt;/span&gt; &lt;span class="cm"&gt;/* uppercase letter B */&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;It is important to note that in C programming, character constants are single characters enclosed in single quotes, not double quotes: &lt;code&gt;'b'&lt;/code&gt; is not the same as &lt;code&gt;"b"&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;C also considers its special characters as single characters, which is why &lt;code&gt;'\n'&lt;/code&gt; (a special character used to inform &lt;code&gt;printf&lt;/code&gt; to print a new line) can be a character constant.&lt;/p&gt;

&lt;h4&gt;
  
  
  How to print the value in a Character type variable
&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;%c&lt;/code&gt; is the &lt;code&gt;printf&lt;/code&gt; format specifier used to print any character constant stored in a &lt;code&gt;char&lt;/code&gt; type Variable.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Let's create a program that assigns a character constant to a character type variable and prints the value stored in a Character type variable:&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;span class="cm"&gt;/**
* main - Entry point of the program 
* Description: Program will print the value stored in a charater type variable
*
* Return: 0 if program successfully executes
*/&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="cm"&gt;/* variable declaration */&lt;/span&gt;
    &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="n"&gt;ch&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="cm"&gt;/* variable initialization */&lt;/span&gt;
    &lt;span class="n"&gt;ch&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sc"&gt;'W'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="cm"&gt;/* print the value stored in variable ch */&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"The character constant stored in variable ch is: %c&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ch&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="cm"&gt;/* exit program after successful execution */&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F92d871bcn532s1itlfwk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F92d871bcn532s1itlfwk.png" alt="My Ubuntu 20.04 LTS terminal showing the output of the above program" width="800" height="72"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another way to print character constants is to use the &lt;code&gt;putchar&lt;/code&gt; function instead of &lt;code&gt;printf&lt;/code&gt;. &lt;code&gt;putchar&lt;/code&gt; is a standard library function that can take a single character constant as an argument and print it.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Let's create a program that uses &lt;code&gt;putchar&lt;/code&gt; to print all letters of the alphabet in lowercase and then a new line:&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;span class="cm"&gt;/**
* main - Entry point of the program 
* Description: Program will print the letters of the alphabet in lowercase, 
* followed by a new line.
*
* Return: 0 if program successfully executes
*/&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="cm"&gt;/* declare variable */&lt;/span&gt;
    &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="cm"&gt;/* initialize variable */&lt;/span&gt;
    &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sc"&gt;'a'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="cm"&gt;/* loop and print the value stored in the variable then increment it */&lt;/span&gt;
    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="sc"&gt;'z'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;putchar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="cm"&gt;/* print a new line */&lt;/span&gt;
    &lt;span class="n"&gt;putchar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sc"&gt;'\n'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="cm"&gt;/* exit program after successful execution */&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fce542eyrjzkih602tbca.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fce542eyrjzkih602tbca.png" alt="My Ubuntu 20.04 LTS terminal showing the output of the above program" width="800" height="41"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;putchar&lt;/code&gt; can also take as an argument, the integer value that represents a character constant in &lt;em&gt;ASCII&lt;/em&gt; and then print the character constant.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Let's create a program that uses &lt;code&gt;putchar&lt;/code&gt; to print all single-digit numbers of base 10 starting from 0 and then a new line:&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;span class="cm"&gt;/**
* main - Entry point of the program
* Description: Program will prints all single digit numbers of base
* 10 starting from 0 and then a new line.
* 
* Return: 0 if program successfully executes
*/&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="cm"&gt;/* declare variable */&lt;/span&gt;
    &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="cm"&gt;/* initialize variable */&lt;/span&gt;
    &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;48&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="cm"&gt;/* loop and print the value stored in the variable then increment it */&lt;/span&gt;
    &lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;57&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="n"&gt;putchar&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="cm"&gt;/* print a new line */&lt;/span&gt;
    &lt;span class="n"&gt;putchar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sc"&gt;'\n'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

     &lt;span class="cm"&gt;/* exit program after successful execution */&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fll5bjc29tcjfplp2fmw4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fll5bjc29tcjfplp2fmw4.png" alt="My Ubuntu 20.04 LTS terminal showing the output of the above program" width="800" height="40"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Similarities between character constants and integer types
&lt;/h4&gt;

&lt;p&gt;C treats character constants as small Integers, which means character constants can be used in arithmetic computation. When a character constant appears in an arithmetic computation, C simply uses the Integer value that represents the character constant in the underlying character set (which is most likely &lt;strong&gt;ASCII&lt;/strong&gt;) on the machine executing the program. This opens up the possibility to convert digits represented as strings to integers and vice versa.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Let's create a program that does a simple arithmetic computation with character constants and prints the result of the computations:&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;&lt;span class="cm"&gt;/**
 * main - Entry point of the program
 *
 */&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kt"&gt;char&lt;/span&gt; &lt;span class="n"&gt;ch&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="cm"&gt;/* Convert an integer to its character constant equivalent */&lt;/span&gt;
    &lt;span class="n"&gt;ch&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;9&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="sc"&gt;'0'&lt;/span&gt; 
    &lt;span class="cm"&gt;/* Convert a character constant to its integer equivalent */&lt;/span&gt;
    &lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sc"&gt;'3'&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="sc"&gt;'0'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="cm"&gt;/* print the values
 stored in the variables */&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"The value stored in variable 'ch': %c&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;ch&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"The value stored in variable 'num': %d&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="cm"&gt;/* exit program after successful execution */&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3jpc94fsobjg2h3t6md4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3jpc94fsobjg2h3t6md4.png" alt="My Ubuntu 20.04 LTS terminal showing the output of the above program" width="800" height="59"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the above code snippet, the subtraction in the line &lt;code&gt;num = '3' - '0';&lt;/code&gt;, is performed to convert the character constant representation of the digit &lt;strong&gt;3&lt;/strong&gt; to its decimal integer constant representation. In ASCII encoding, the character constants &lt;code&gt;'0'&lt;/code&gt; to &lt;code&gt;'9'&lt;/code&gt; are represented by consecutive integer values. The character constant &lt;code&gt;'0'&lt;/code&gt; has an ASCII value of &lt;strong&gt;48&lt;/strong&gt;, &lt;code&gt;'1'&lt;/code&gt; has a value of &lt;strong&gt;49&lt;/strong&gt;, &lt;code&gt;'2'&lt;/code&gt; has a value of &lt;strong&gt;50&lt;/strong&gt;, and so on. Subtracting the ASCII value of &lt;code&gt;'0'&lt;/code&gt; (48) from the ASCII value of &lt;code&gt;'3'&lt;/code&gt; (51) gives us &lt;strong&gt;51 - 48 = 3&lt;/strong&gt;, which is the decimal integer constant representation of the digit &lt;strong&gt;3&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;In the line &lt;code&gt;ch = 9 + '0'&lt;/code&gt; the same principle applies but in reverse. here the addition is performed to convert the decimal integer constant representation of the digit &lt;strong&gt;9&lt;/strong&gt; to its corresponding character constant representation. Adding the ASCII integer value of &lt;code&gt;'0'&lt;/code&gt; (48) to the integer &lt;code&gt;9&lt;/code&gt; gives us &lt;strong&gt;48 + 9 = 57&lt;/strong&gt;, which is the ASCII encoding of the digit &lt;strong&gt;9&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The difference between a &lt;code&gt;char&lt;/code&gt; type variable and any &lt;code&gt;int&lt;/code&gt; type variable is their respective storage allocation specifications and range of values. &lt;code&gt;char&lt;/code&gt; type variables use a lesser storage allocation and accept a smaller range of values.&lt;/p&gt;

&lt;p&gt;Also since C allows character constants to be used as integers in arithmetic computation, a &lt;code&gt;char&lt;/code&gt; type variable can exist in both signed and unsigned forms.&lt;/p&gt;

&lt;p&gt;The following table shows the storage allocation specification and range of values for the different forms of &lt;code&gt;char&lt;/code&gt; type variables:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Memory Allocation Spec&lt;/th&gt;
&lt;th&gt;Value Range&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;signed char&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1 Byte&lt;/td&gt;
&lt;td&gt;-128 to 127&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;unsigned char&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1 Byte&lt;/td&gt;
&lt;td&gt;0 to 255&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;The C standard doesn't define whether just specifying &lt;code&gt;char&lt;/code&gt; in a variable declaration indicates a signed type or an unsigned type. Some compilers treat ordinary &lt;code&gt;char&lt;/code&gt; as a signed type while others treat it as an unsigned type... Most of the time it doesn't matter whether &lt;code&gt;char&lt;/code&gt; is signed or unsigned.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Do not assume that &lt;code&gt;char&lt;/code&gt; is either signed or unsigned by default. If it matters, use the &lt;code&gt;signed char&lt;/code&gt; keyword or &lt;code&gt;unsigned char&lt;/code&gt; keyword in your variable declaration instead of just &lt;code&gt;char&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Floating types
&lt;/h3&gt;

&lt;p&gt;A floating type variable will store floating-point constants. &lt;code&gt;float&lt;/code&gt; is the keyword that is used to specify the floating type.&lt;/p&gt;

&lt;p&gt;Floating point constants are values that have digits after the decimal point. You can omit digits before or after the decimal point, but you can't omit both. Floating point constants can also be expressed in scientific notation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="cm"&gt;/* Example of valid floating point constants */&lt;/span&gt;
&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
&lt;span class="mi"&gt;120&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;
&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mo"&gt;0001&lt;/span&gt;
&lt;span class="mf"&gt;1.7e4&lt;/span&gt; &lt;span class="cm"&gt;/* scientific notation 1.7 x 10^-4 */&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;C provides three (3) Floating types keywords, corresponding to different floating point formats:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;float&lt;/code&gt; for single-precision floating-point formats&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;double&lt;/code&gt; for double-precision floating-point formats&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;long double&lt;/code&gt; for extended-precision floating-point formats&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The C standard doesn't state how much precision the &lt;code&gt;float&lt;/code&gt;, &lt;code&gt;double&lt;/code&gt;, and &lt;code&gt;long double&lt;/code&gt; types provide since different computers may store floating-point numbers in different ways. Most modern computers follow the specification in IEEE Standard 754 (also known as IEC 60559).&lt;/p&gt;

&lt;p&gt;By default, all floating-point constants are stored as double-precision values by the C compiler. This means for example when a C compiler finds a floating-point constant of 12.34 in your program, it arranges for the number to be stored in memory in the same format as a value stored through a &lt;code&gt;double&lt;/code&gt; variable.&lt;/p&gt;

&lt;p&gt;If you want a floating-point constant to be stored in memory as a &lt;code&gt;float&lt;/code&gt; add f to the end of the constant as you assign it to a &lt;code&gt;float&lt;/code&gt; type variable:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;34&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  How to print the value in a Floating type Variable
&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;%f&lt;/code&gt; , &lt;code&gt;%e&lt;/code&gt;, or &lt;code&gt;%g&lt;/code&gt; is the format specifier used to print floating-point constants with &lt;code&gt;printf&lt;/code&gt;. The format specifier &lt;code&gt;%g&lt;/code&gt; produces the most aesthetically pleasing output because it lets &lt;code&gt;printf&lt;/code&gt; decide whether to display the floating-point constant as normal floating-point notation or scientific notation. To print the value in a &lt;code&gt;long double&lt;/code&gt; type variable add L (ex: &lt;code&gt;%Lf&lt;/code&gt;) to any of the above-mentioned format specifiers.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Let's create a program that store values in floating type variables and then print the values:&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight c"&gt;&lt;code&gt;&lt;span class="cm"&gt;/**
 * file name: float_type.c
 * main - Entry point of the program. 
 */&lt;/span&gt;
&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;stdio.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;
&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;void&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="cm"&gt;/* variable declarations */&lt;/span&gt;
    &lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;fVar&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;double&lt;/span&gt; &lt;span class="n"&gt;dVar&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kt"&gt;long&lt;/span&gt; &lt;span class="kt"&gt;double&lt;/span&gt; &lt;span class="n"&gt;LdVar&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="cm"&gt;/* variable assignment */&lt;/span&gt;
    &lt;span class="n"&gt;fVar&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;34&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;dVar&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;34&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="n"&gt;LdVar&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="mi"&gt;341&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="cm"&gt;/* print the values stored in the repective variables */&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"This is the value stored in a Float type variable: %g&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fVar&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"This is the value stored in a double type variable: %g&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dVar&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="n"&gt;printf&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"This is the value stored in a long double type variable: %Lg&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;LdVar&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; 

    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F92tlj77b5bb4hl1kveuu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F92tlj77b5bb4hl1kveuu.png" alt="My Ubuntu 20.04 LTS terminal showing the output of the above program" width="800" height="53"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Variables are one of the basic data objects manipulated in a program. They make it easy for programmers to build programs that can store and retrieve data for different kinds of task with a minimal amount of code. Without Variables, it is difficult to get much done with your program.&lt;/p&gt;

&lt;p&gt;In C programming, a Variable is first declared before it is used. Declarations list the variables to be used and state what type they have.&lt;/p&gt;

&lt;p&gt;In this article, you have been introduced to the fundamentals of how to declare variables that suit specific needs in your program, how to assign values to variables, and how to print the values stored in different types of variables using C standard library functions and format specifiers.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Thank you for taking the time to read my article. Please click reaction icons and share the article to your social network, the information in this article might help someone in your network.❤&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  References
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.tutorialspoint.com/c_standard_library/limits_h.htm"&gt;C Library&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://publications.gbdirect.co.uk//c_book/chapter2/keywords_and_identifiers.html"&gt;The C Book — Keywords and identifiers&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/cpp/c-language/c-identifiers?view=msvc-170"&gt;C Identifiers&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://publications.gbdirect.co.uk/c_book/chapter2/integral_types.html"&gt;The C Book — Integral types&lt;/a&gt;&lt;/p&gt;

</description>
      <category>c</category>
      <category>tutorial</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
  </channel>
</rss>
