- C programming experience
Audience
- Programmers
- Developers
The C programming language is one of the most popular programming languages, especially in the realm of systems programming and embedded systems development.
This instructor-led, live training (online or onsite) is aimed at programmers who wish to tap into C's more advanced features and capabilities to optimize and extend the power, resilience and quality of their software applications.
By the end of this training, participants will be able to:
- Solve problems efficiently by writing high-quality code.
- Select the right methods and approaches for the job at hand.
Format of the Course
- Interactive lecture and discussion.
- Lots of exercises and practice.
- Hands-on implementation in a live-lab environment.
Course Customization Options
- To request a customized training for this course, please contact us to arrange.
Introduction
- Overview of C Features and Applications
Preparing the Development Environment
- Choosing an IDE
- Configuring the compiler
Writing a Sample Program
- Defining the problem
- Coding according to requirements
Defining the Scope of Variables and Functions
- Understanding scope, visibility and lifetime
- Working with storage classes: auto, extern, register, static
Managing Data in a C Program
- Beyond primitive data types
- Working with advanced data types: structures, linked lists, etc.
- Storing different data types in the same memory location
Modifying the Properties of a Variable
- Beyond type modifiers
- Working with type qualifiers: constant, volatile, etc.
Manipulating Bits in C
- Working with data smaller than a byte
- Working with bit manipulation operators
Controlling the Flow of Your Program
- Beyond sequencing
- Using the goto statement
Reading and Writing Data
- Recap of Input/Output functions
- Improving output readability
Developing Cross-Platform Code
- Understanding compiler directives
- Compiling code conditionally
Enhancing Program Performance
- Macros vs functions
- Defining macros to run program fragments
Dynamically Allocating Memory
- Advantage of using pointers: execution speed
- Pointers to functions
- Accessing memory and manipulating the address
Debugging a C Program
- Advanced techniques for checking, detecting and correcting errors
- Working with gdb (Gnu Debugger)
Creating a Static Library
- How a static library is linked into executable file
- Creating a static library
Creating a Shared Library
- Static libraries vs shared libraries (dynamic libraries)
- How a shared library is linked and loaded into memory at runtime
- Creating a shared library
Abstracting Data in Your Program
- Overview of interface, specification, and implementation
- Creating an abstract data type
- Regression testing an abstract data type
Searching and Sorting Data
- Searching arrays using linear search, binary search, etc.
- Sorting arrays usig selection sort, insertion sort, bubble sort
Interprocess Communication and Signals
- Understanding processes, sockets, and signals
- Implementing IPC using shared files, shared memory, pipes, message queues, sockets, semaphores, etc.
Making Your C Program Run in Parallel
- Running different parts of a program concurrently through multithreading
- Writing a thread
Advanced Networking Programming
- Recap of TCP, UDP, IP and other dominant protocols
- Serving multiple ports, surviving abrupt network disruptions, etc.
- Writing powerful socket APIs
Towards High-Quality Code
- Peer code review and parallel programming
- The importance of iterative coding (refactoring)
Summary and Conclusion
United Arab Emirates - Advanced C Programming
Qatar - Advanced C Programming
Egypt - Advanced C Programming
Saudi Arabia - Advanced C Programming
South Africa - Advanced C Programming
Brasil - Advanced C Programming
Canada - Advanced C Programming
Österreich - Advanced C Programming
Schweiz - Advanced C Programming
Deutschland - Advanced C Programming
Czech Republic - Advanced C Programming
Denmark - Advanced C Programming
Estonia - Advanced C Programming
Finland - Advanced C Programming
Greece - Advanced C Programming
Magyarország - Advanced C Programming
Ireland - Advanced C Programming
Luxembourg - Advanced C Programming
Latvia - Advanced C Programming
España - Advanced C Programming
Italia - Advanced C Programming
Lithuania - Advanced C Programming
Nederland - Advanced C Programming
Norway - Advanced C Programming
Portugal - Advanced C Programming
România - Advanced C Programming
Sverige - Advanced C Programming
Türkiye - Advanced C Programming
Malta - Advanced C Programming
Belgique - Advanced C Programming
France - Advanced C Programming
Australia - Advanced C Programming
Malaysia - Advanced C Programming
New Zealand - Advanced C Programming
Philippines - Advanced C Programming
Singapore - Advanced C Programming
Thailand - Advanced C Programming
Vietnam - Advanced C Programming
India - Advanced C Programming
Argentina - Advanced C Programming
Chile - Advanced C Programming
Costa Rica - Advanced C Programming
Ecuador - Advanced C Programming
Guatemala - Advanced C Programming
Colombia - Advanced C Programming
México - Advanced C Programming
Panama - Advanced C Programming
Uruguay - Advanced C Programming
Venezuela - Advanced C Programming
Polska - Advanced C Programming
United Kingdom - Advanced C Programming
South Korea - Advanced C Programming
Pakistan - Advanced C Programming
Sri Lanka - Advanced C Programming
Bulgaria - Advanced C Programming
Bolivia - Advanced C Programming
Indonesia - Advanced C Programming
Kazakhstan - Advanced C Programming
Moldova - Advanced C Programming
Morocco - Advanced C Programming
Tunisia - Advanced C Programming
Kuwait - Advanced C Programming
Slovakia - Advanced C Programming
Kenya - Advanced C Programming
Nigeria - Advanced C Programming
Botswana - Advanced C Programming
Slovenia - Advanced C Programming
Croatia - Advanced C Programming
Serbia - Advanced C Programming
Bhutan - Advanced C Programming