page-header

C Programming Language Course

C Programming Language Course

This hands-on C programming course offers a thorough introduction to the ANSI C language, with an emphasis on portability and structured design. All major language elements are introduced to students, including fundamental data types, flow control, and standard function libraries. String and character manipulation, dynamic memory allocation, standard I/O, macro definition, and the C runtime library are all thoroughly covered. The C training course begins by explaining the use of aggregate structures, unions, and pointers so that students can practise extensively in the hands-on labs. Structured programming constructs, as well as varargs functions, are covered.

The processing of command line arguments and environment variables is emphasised so that students can write flexible, user-friendly programmes. The course also covers portability tips from experienced programmers who work in production environments. Hands-on exercises are integrated throughout the course to reinforce learning and develop true competency.

Overview of C

  • Operating System Independence
  • Design Goals and Capabilities
  • Flavors of C

Compiler Directives and the C Preprocessor

  • Compile-Time Directives
  • Use of typedef
  • C Preprocessor Syntax

Fundamental Data Types, Storage Classes, and Scope

  • Fundamental Data Types and Qualifiers
  • Constants and Strings
  • Storage Classes
  • Scope and Block Structure
  • Scope and Data Hiding
  • Data Initialization

Pointers and Dynamic Allocation

  • Advantages of Pointers
  • User of Pointers
  • Pointer and Address Arithmetic
  • Dynamic Storage Allocation
  • sizeof Operator
  • Double Indirection

Macros

  • Functions vs. Inlining
  • Purpose of Macros
  • Use of Macros
    • Making Code More Readable
    • Auto Adjustment of Compile Time Values
    • Conditional Compilation
    • Making Code Portable
    • Simplifying Complex Access Calculations
  • Advanced Micro Design Tips
  • Using Macros to Help Write Portable Programs
  • When to Use a Macro instead of a Function
  • Using Macros for Debugging

Arrays

  • Purpose of Arrays
  • Declaring an Array
  • Initializing an Array
  • Addressing Elements
  • Stepping Through an Array
  • Variable Size Arrays
  • Arrays of Pointers
  • Arrays of Strings
  • Passing an Array to a Function
  • Dynamic Memory Allocation
  • Multidimensional Arrays

Basic Formatted I/O

  • Standard I/O Library
  • Character Set Encoding
  • Standard Input and Output
  • Character I/O Functions
  • Formatted I/O Functions
  • String Constants

Program Debugging

  • Problem Analysis
  • Instrumenting with printif
  • Instrumenting with ctrace
  • The Purpose of Debuggers
  • How Not to Use Debuggers
  • Symbolic Debuggers

Operators and Expressions

  • Arithmetic, Logical, and Bit Operators
  • Precedence and Associativity
  • Assignment and Casting
  • The Conditional Operator

Flow Control Constructs

  • Conditional Constructs: ifswitch
  • Looping Constructs: whiledofor
  • Programming Style

Functions (Subroutines)

  • Purpose of Functions
  • Functions vs. Inlining
  • Automatic Variables
  • The Argument Stack
  • Passing By Value
  • Passing By Reference
  • Declaring External Functions
  • Function Prototyping
  • ANSI Prototyping
  • The _NO_PROTO Compiler Symbol
  • Varargs Functions
  • Passing a Function as an Argument
  • Designing Functions for Reusability
  • Calling a Function from Another Language
  • Returning a Dynamically Allocated Value Using Double Indirection
  • Casting the Return Value of a Function
  • Recursion and Reentrancy

Structures

  • Purpose of Structures
  • Defining and Declaring Structures
  • Accessing Members
  • Pointers to Structures
  • Dynamic Memory Allocation
  • Passing a Structure to a Function
    • As a Pointer
    • Passing the Actual Structure

Advanced Structures and Unions

  • Nested Structures
  • Arrays of Structures
  • Bit Fields
  • Unions
  • Linked Lists

C Runtime Library Standard Functions

  • Character I/O
  • Unformatted File I/O
  • Formatted File I/O
  • Math Functions
  • Miscellaneous Functions

Strings and Character Manipulation

  • Strings as Character Arrays
  • String Library Functions
  • Reading and Writing Strings

Accessing Command Line Arguments and Environment Symbols

  • argc and argv
  • Parsing Command Line Options
  • Accessing the Environment Array

Structured Programming

  • Structuring Code for Quality, Reliability, Maintainability
  • Designing for Modularity and Reusability

Advanced Programming Consideration

  • Writing Portable Code
  • Use of Macros
  • ANSI C Limits
  • Feature Test Macros
  • Client/Server Design
  • Performance Considerations
  • Components of a C program
  • Using the C preprocessor
  • Using standard runtime libraries
  • Using make to build programs
  • Working with debugger utilities
  • Using data types, storage classes and scope
  • Using typedef to make code more readable and portable
  • Using operators and expressions
  • Working with conditional and looping constructs
  • Initializing a pointer
  • Accessing the value addressed by a pointer
  • Returning the value of a function
  • Declaring argument data types
  • ANSI function prototype syntax
  • Declaring and initializing arrays and multidimensional arrays
  • Using Strings and character manipulation
  • Declaring and instancing a structure
  • Defining a union
  • Accessing command line arguments and environment variables
  • C runtime library standard I/O function

Batch Details

Course Fee
4999

Related Courses

Open chat