fbpx

Programming in “C”

1. Programming Language overview and essentials

  • Types of Languages
  • IDE Environment (Editor, Compiler, Execution, Debugger)
  • Compilation steps  or Compilation process toolchain (Preprocessor, Compiler, Assembler and Linker)
  • Debugging with GDB (GNU Debugger)
  • Sample C Programs

2. Basic Syntax

  • Basic Elements (Character set, Tokens, Semicolons, comments, whitespaces, Keywords, Identifiers)
  • Input and output
  • Constants  (Numeric, Character and String)
  • Variables
  • Expression and Statement
  • Data types (char, int, float and double), Sign and Size Qualifiers
  • Numeric Conversions (Binary, Octal, Decimal and HexaDecimal)
  • Operators (Arithmetic, Assignment,  Relational, Logical or Boolean, Increment/Decrement, Conditional, Comma, sizeof(), Bitwise and Implicit/Explicit Operators)
  • Operators Precedence and associativity
  • Type casting

3. Control structures

  • Conditional Statements (if, if-else, else-if ladder)
  • Nested if
  • Switch, nested switch
  • Repetitive Statements (For, While, Do-while Loops)
  • Nested loops
  • Break statement
  • Continue statement
  • Goto statement
  • Infinite loop

4. Functions

  • Why do we need function?
  • Defining a function
  • Function declarations
  • Calling a function
  • Function arguments along with input and output types
  • Returning from function
  • Storage classes (viz., auto, register, static and extern) – Scope and Life Time
  • Recursion
  • Enum
  • Operations on Bits (Bit Set, Reset, Toggle and Checking Status)

5. Arrays

  • Basic operations on Array
  • Two dimensional arrays
  • Multi-dimensional arrays
  • Passing arrays as functional arguments
  • Strings

6. Pointers

  • Why do we need pointers?
  • What are pointers?
  • Using pointers
  • Dereferencing pointer variables
  • NULL pointers
  • Void pointers
  • Call by value and Call by reference
  • Pointer arithmetic
  • Precedence of dereferencing and increment/decrement operators
  • Pointer to pointer
  • Array of pointers
  • Pointer to an Array
  • Function pointers
  • Array of function pointers
  • Passing Pointers to functions
  • Return array/pointer from function
  • Passing pointers as parameters
  • Command line arguments

7. Memory Management

  • Dynamic memory allocation
  • Resizing and releasing memory

8. Structures and Unions

  • Defining a structure
  • Accessing structure members
  • Typedef
  • Structure padding
  • Array of structures
  • Arrays within structures
  • Nested structures
  • Pointer to structure
  • Pointer within structure
  • Structures and functions
  • Defining a union
  • Accessing union members
  • Bit fields

9. File I/O

  • What is File I/O?
  • Types of file handling – Low Level and High Level
  • Types of files
  • File operations (Opening files, Closing a file, Writing andReading files)
  • File I/O types (Character I/O, String I/O, formatted I/O and block I/O)
  • Traversing within the file
  • Error handling

10. Preprocessors

  • Header files
  • Macro Substitution
  • Nested Macros
  • Issues with Macros
  • Parameterized Macros
  • Macros vs functions
  • Overloading functions in “C” way
  • Stringizing and token pasting operators
  • Conditional compilation, Debugging purposes
  • Predefined macros