Description
This advanced C language course will allow you to deepen and expand your knowledge in the subject. Through a variety of practical exercises, you will approach the most advanced concepts such as pointers, recursion, major developments in the C11 standard as well as object-oriented programming.
Who is this training for ?
For whom ?
Designers, developers.
Prerequisites
Good knowledge of C language or equivalent knowledge.
Training objectives
Training program
- Pointers and arrays
- Reminders about pointers and arrays, differences and commonalities between the two.
- The three arguments of the main() function, the environment variables.
- Arrays with multiple indices.
- Function pointer, array of function pointers.
- Dynamic allocation identified by pointers.
- Practical work r nDevelopment of programs using pointers intensively.
- Function libraries
- Standard language libraries: ctype.h, math.h, stdlib.h, time.h.... and others.
- Advanced math libraries: Linpack, Lapack.
- Dynamic allocation management: calloc(), realloc() functions.
- Functions with existing variable number of arguments and created by the programmer.
- Practical work Using several function libraries.
- Recursion
- Definition of recursion.
- Recursive functions.
- Recursive data structure: lists, trees.
- Intrinsic algorithms on data structures recursive data (insertion, removal.).
- Practical work Creation of a library for handling recursive data.
- Development tools for the C language
- Error detection in programs: the debugger.
- Dependency management tools: make and touch.
- Dynamic analysis of programs: the profiler.
- Test tools: CUnit.
- Practical work Using development tools for the C language.
- From C language to object-oriented programming
- Definitions of object-oriented notions: object, encapsulation, class, inheritance, polymorphism.
- Object-oriented domains treated with the C language.
- From the C language to the language C++.
- From the C language to the Java language.
- Practical work Object-oriented design using the C language.
- Advanced aspects of the C11 standard
- Multi-threading.
- Anonymous structures and unions.
- Generic functions.
- Unicode coding management.
- Rewriting certain functions, checking data sizes.
- Practical work Use of concepts added by the C11 standard.