Example Featured Courses
Students who take C, also register the below courses:
This hands-on self-paced intermediate level C programming course complements our previous C course (or Introduction to C programming language). In our previous course, we covered a comprehensive introduction to the ANSI C language, emphasizing portability and structured design while students were introduced to all major language elements including fundamental data types, flow control, and standard function libraries. as well as other topics like string and character manipulation, dynamic memory allocation, standard I/O, macro definition, the C runtime library, and pointers.
In this course, we continue our journey by covering the Structured programming constructs, the use of aggregate structures, unions and varargs functions. Emphasis is given to the processing of command line arguments and environment variables so students will be able to write flexible, user-friendly programs. The course also includes coverage of portability tips drawn from experienced programmers working in production environments. Comprehensive hands-on exercises are integrated throughout to reinforce learning and develop real competency.
Learning Objectives
In this course, you will learn the following:
- Using standard runtime libraries
- Using make to build programs
- Returning the value of a function
- Declaring argument data types
- ANSI function prototype syntax
- 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 functions
Topics and Subtopics
The following topics and subtopics are covered in this course:
1- 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
2- 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
3- Advanced Structures and Unions
- Nested Structures
- Arrays of Structures
- Bit Fields
- Unions
- Linked Lists
4- C Runtime Library Standard Functions
- Character I/O
- Unformatted File I/O
- Formatted File I/O
- Math Functions
- Miscellaneous Functions
5- Strings and Character Manipulation
- Strings as Character Arrays
- String Library Functions
- Reading and Writing Strings
6- Accessing Command Line Arguments and Environment Symbols
- argc and argv
- Parsing Command Line Options
- Accessing the Environment Array
7- Structured Programming
- Structuring Code for Quality, Reliability, Maintainability
- Designing for Modularity and Reusability
8- Advanced Programming Consideration
- Writing Portable Code
- Use of Macros
- ANSI C Limits
- Feature Test Macros
- Client/Server Design
- Performance Considerations
Requirements
Introduction to C programming language.
Related Courses
- Introduction to Java Programming
- Introduction to Go Programming
- Learn Kotlin Programming by Examples
- Introduction to Python Programming
Complete Training Bundle
If you are serious about becoming a pro software engineer, you should enroll in our Complete Training Bundle for Software Engineers class, This bundle covers all essential and practical topics related to software design and development. For $290 monthly subscription, you can have access to 300+ hours of hands-on project-based training covering all courses related to software development like Python, Java, Kotlin, C/C++ Go and more. Click here to learn more.
Private Tutoring Classes
To take skills you learn from this course to the next level, taking the following tutoring classes are highly recommended. It is also a great opportunity to discuss your questions and problems related to this course with an experienced instructor:
- Private tutoring sessions for software design and engineering- Weekly and monthly plans
- C and C++ programming languages- Private tutoring sessions
What Is Next?
After finishing this course, you can enroll in any of following classes:
- Learn C++ Programming by Examples
- Introduction to Database Design
- Learn SQL Programming by Examples
- Intro to Blockchain Technology
- Introduction to Linux OS
- Intro to Linux Bash Scripting
Recommended Free Courses
If you are new to the IT or programming, we suggest the following free courses:
Example Featured Courses
Students who take C, also register the below courses: