C programming fundamentals
The C programming language can be used to develop both system software and application software, on any platform (Linux/Unix, Windows, Mac, embedded systems, mainframe). The popularity of C is explained by its flexibility and efficiency, its simple way to address low-level functions, and the fact that programs can easily be transferred between platforms. Also, lots of highly efficient and often even open-source software libraries have been written in C and can thus be easily called from other C programs.
This course will cover the syntax and structure of the ISO/ANSI definition of the C language (more specifically C99 and C11). The course also covers the C preprocessor, debugging tools (gdb), and build tools (like configure and make).
At the end of the course, students will know
- the basics of ANSI C, its data types and pointers, and will be able to write C applications;
- the most important standard C libraries, with functionality for input/output, string manipulation, and memory management.
No public sessions are currently scheduled. We will be pleased to set up an on-site course or to schedule an extra public session (in case of a sufficient number of candidates). Interested? Please let us know.
Application programmers wanting to write or maintain C programs.
Knowledge of programming structures and algorithmic concepts is required. Knowledge of an other programming language might be an advantage.
- Basic syntax • program structure • elementary data types • operators • expressions • strings.
- comparison operators and flow control (while/for/do/if/switch).
- Arrays • pointers • structures • union • bit fields • enum • bitwise operators
- Using pointers to modify arguments • strings and common string functions • arrays of pointers
- Functions and prototyping • identifier scope and storage class • header files • recursivity.
- The C preprocessor • working with macros • conditional compilation.
- Getting and displaying text • working with files
- Using standard input and standard output
- Linked lists • function pointers • "hook" functions
- Dynamic memory allocation
Theory alternated with practical exercises, at choice on Linux, Unix, or Windows.
|SESSION INFO AND ENROLMENT|