about summary refs log blame commit diff stats
path: root/dev/c/datatypes.html
blob: cbe19a265d33fc9b9a3b262ad84b4c15f338c388 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11










                                                     















                                                     


                                          


























                                                                                
                                        












                                                                   
                                            









                                                                                                                                           
                                  







                                        
                                       







                                  
                                  







































                                                             




                                         
                                                   
 





















                                                     
                                                         
                          
                  

                                                                                               
 

           
<!DOCTYPE html>
<html dir="ltr" lang="en">
    <head>
        <meta charset='utf-8'>
        <title>Datatypes</title>
    </head>
    <body>
        <a href="../index.html">Development Index</a>

        <h1>Datatypes</h1>

        <h2 id="types">Types</h2>

        <dl>
            <dt>char</dt>
            <dd>Integer, one byte.</dd>
            <dt>int</dt>
            <dd>Integer.</dd>
            <dt>float</dt>
            <dd>Single precision floating point.</dd>
            <dt>double</dt>
            <dd>Double precision floating point.</dd>
            <dt>void</dt>
            <dd>Absence of type.</dd>
        </dl>


        <h2 id="datatypes">Data types</h2>

        <h2 id="int">Integer</h2>
        <p>Allowed <a href="elements.html#types">types</a> are char and int;</p>
        <dl>
            <dt>signed char</dt>
            <dd>8 bit, from -128 to 127.</dd>
            <dt>unsigned char</dt>
            <dd>8 bit, from 0 to 255.</dd>
            <dt>char</dt>
            <dd>8 bit, used to store ASCII, ex; 'h', '\n', etc...</dd>
            <dt>short int</dt>
            <dd>16 bit, from -32,768 to 32,767.</dd>
            <dt>unsigned short int</dt>
            <dd>16 bit, from 0 to 65,535.</dd>
            <dt>int</dt>
            <dd>32 bit, from -2,147,483,648 to 2,147,483,647.</dd>
            <dt>unsigned int</dt>
            <dd>32 bit, from 0 to 4,294,967,295.</dd>
            <dt>long int</dt>
            <dd>32 bit, from -2,147,483,648 to 2,147,483,647.</dd>
            <dt>unsigned long int</dt>
            <dd>32 bit, from 0 to 4,294,967,295.</dd>
            <dt>long long int</dt>
            <dd>64 bit, from 9,223,372,036,854,775,808
            to 9,223,372,036,854,775,807.</dd>
            <dt>unsigned long long int</dt>
            <dd>64 bit, from 0 to 18,446,744,073,709,551,615.</dd>
        </dl>

        <h2 id="double">Real number</h2>

        <p>Real numbers are fractional numbers, all floating points
        are signed. Check float.h.</p>

        <dl>
            <dt>float</dt>
            <dd>From 1e-37 to 1e37</dd>
            <dt>double</dt>
            <dd>Largest of floating point.</dd>
            <dt>long double</dt>
            <dd>The long double data maybe larger than double</dd>
        </dl>

        <h2 id="complex">Complex number</h2>

        <p><a href="https://www.gnu.org/software/gnu-c-manual/gnu-c-manual.html#Standard-Complex-Number-Types">Complex Number Types</a></p>

        <h2 id="enum">Enumeration</h2>

        <pre>
        enum colors {black, orange, blue} color;
        enum colors color;
        </pre>

        <h2 id="union">Unions</h2>

        <pre>
        union accounts {
            int id;
            float value;
        } first_account, second_account;
        </pre>

        <h2 id="struct">Structures</h2>

        <pre>
        struct point {
            int x, y;
        } first_point;
        struct point second_point;
        </pre>

        <h2 id="array">Arrays</h2>

        <pre>
        int account_array[9];
        int account_array[] = {0, 1, 2, 3};
        int account_array[] = {0, 1, 2, [9] = 9};
        </pre>

        <pre>
        int account_array[2][9] { {1,2,3},{9,8,7} }
        </pre>

        <p>Initializing string with individual characters the
        null character must be defined;</p>

        <pre>
        char black[] = {'b', 'l', 'a', 'c', 'k', '\0'}
        </pre>

        <pre>
        char black[] = "black";
        </pre>

        <pre>
        union accounts {
            int id;
            float value;
        };
        union accounts accounts_array[9];
        accounts_array[0].id = 8;
        </pre>

        <pre>
        struct point {
            int x, y;
        };
        struct point point_array[9];
        point_array[0].x=2;
        point_array[0].y=3;
        </pre>

        <h2 id="pointer">Pointers</h2>
        <h2 id="it">Incomplete types</h2>
        <h2 id="tq">Type qualifiers</h2>
        <h2 id="st">Storage class</h2>

        <h2 id="format">Format Type Specifiers</h2>

        <dl>
            <dt>%c</dt>
            <dd>Character</dd>
            <dt>%s</dt>
            <dd>String of characters</dd>
            <dt>%d</dt>
            <dd>Decimal integer</dd>
            <dt>%f</dt>
            <dd>Decimal floating point</dd>
            <dt>%llu</dt>
            <dd>unsigned long long</dd>
            <dt>%o</dt>
            <dd>Signed octal</dd>
            <dt>%u</dt>
            <dd>Unsigned decimal integer</dd>
            <dt>%x</dt>
            <dd>Unsigned hexadecimal integer</dd>
            <dt>%p</dt>
            <dd>Pointer address</dd>
        </dl>

        <a href="../index.html">Development Index</a>
        <p>This is part of the Hive System Documentation.
        Copyright (C) 2018
        Hive Team.
        See the file <a href="../../fdl-1.3-standalone.html">Gnu Free Documentation License</a>
        for copying conditions.</p>

    </body>
</html>