Search This Blog

Featured Post

Machine Learning, Big Data, AI, Deep Learning

Friday, October 19, 2018

Learning C

This post is for recording the learning process of  C.

Start from the very beginning - Bootloader

Bootloader is a piece of program that runs before any operating system is running.
The bootloaders are generally written in 16-bit assembly(also called Real mode), then the bits can be extended to 32-bit(Protected mode).
So the bootloaders must be written in 16-bit assembly.

https://createyourownos.blogspot.com/

Download Required:
NASM assember
https://www.nasm.us/docs.php

QEMU simulator
https://qemu.weilnetz.de/

Chosen Compiler 


Grammar

#include <stdio.h>   //library to run printf & scanf
int main()   // int is keyword and main is the identifier. Main identifier is  must for C programming. Main identifier is a integer, so at last return 0 inside the container means the main identifier is 0 so the program end
{ // a container start
        printf(" Hello, World!") ;   //printf is output function , the " ; " is a must for each statement
        return 0;  // "; " always here even at the end
} // a container end

Keywords

Keywords in C Language
autodoubleintstruct
breakelselongswitch
caseenumregister typedef
charexternreturnunion
continueforsignedvoid
doifstatic while
defaultgotosizeofvolatile
constfloatshortunsigned

Identifier

Rules for writing an identifier

1.) A valid identifier can have letters (both uppercase and lowercase letters), digits and underscores.
2.) The first letter of an identifier should be either a letter or an underscore. However, it is discouraged to start an identifier name with an underscore.
3.) There is no rule on length of an identifier. However, the first 31 characters of identifiers are discriminated by the compiler.

Variables and Constants

Variables:

{ ...
int examresult = 95;  // exam result is  variable
...}

Rules for naming a variable in C

1.) A variable name can have letters (both uppercase and lowercase letters), digits and underscore only.
2.) The first letter of a variable should be either a letter or an underscore. However, it is discouraged to start variable name with an underscore. It is because variable name that starts with an underscore can conflict with system name and may cause error.
3.) There is no rule on how long a variable can be. However, only the first 31 characters of a variable are checked by the compiler. So, the first 31 letters of two variables in a program should be different.

Constants:

{ ...
const double PI = 3.14 // PI is  constant
...}


Different types of constants
  1. Integer constants
    • decimal constant(base 10) : 0, -9, 22 etc
    • octal constant(base 8): 021, 077, 033 etc
    • hexadecimal constant(base 16): 0x7f, 0x2a, 0x521 etc
  2. Floating-point constants
    • Numeric constant that has either a fractional form or an exponent form
    • e.g. -2.0,  0.0000234, -0.22E-5
  3. Character constants
    • a constant which uses single quotation around characters. For example: 'a', 'l', 'm', 'F'
  4. Escape Sequences
    • Escape SequencesCharacter
      \bBackspace
      \fForm feed
      \nNewline
      \rReturn
      \tHorizontal tab
      \vVertical tab
      \\Backslash
      \'Single quotation mark
      \"Double quotation mark
      \?Question mark
      \0Null character
  5. String constants
    • "good"             //string constant
    • ""                     //null string constant
    • "      "               //string constant of six white space
    • "x"                   //string constant having single character.
    • "Earth is round\n"         //prints string with newline
  6. Enumeration constants
    • enum color {yellow, green, black, white};
    • Here, color is a variable and yellow, green, black and white are the enumeration constants having value 0, 1, 2 and 3 respectively

Data Types


  1. Fundamental Data Types
    • Integer types
    • Floating type
    • Character type
  2. Derived Data Types
    • Arrays
    • Pointers
    • Structures
    • Enumeration
C Qualifiers
Qualifiers alters the meaning of base data types to yield a new data type

  • Size qualifiers
    • long double i;
  • Sign qualifiers
    • unsigned int positiveInteger;
  • Constant qualifiers
    • const int cost = 20;
  • Volatile qualifiers
    • A variable should be declared volatile whenever its value can be changed by some external sources outside the program. Keyword volatile is used for creating volatile variables.



E-Book:



The C book

No comments:

Post a Comment