Modern C
C as a language has evolved a lot since it was first standardized in 1989, aka C89/C90/ANSI C. Among other things, C99 introduced better support for scientific computing, C11 introduced a new memory model and support for concurrency. The current version C17. Not only has the C language itself evolved, the way we use C has changed as well, often influenced by other languages and by modern ideas in software engineering.
In this 2 day course you will learn more about:
- variable-length arrays
- alignment specifications
- test-driven development techniques
- advanced and correct pointer arithmetic
- type-generic expressions
- static asserts
- tools for better dignostic messages
- better support for scientific computing
- the new memory model and support for multi-threading
- undefined vs unspecified behavior
- inline functions
- compund literals and designated initializers
- variadic macros and advanced preprocessing techniques
- type-generic math functions
- anonymous structures and unions
- writing solid code in C
- flexible array members
- and much more...
Prerequisites
This is an advanced 2 day course for experienced programmers, taught by a world-class expert. You either have a strong background in a few other programming languages, and/or you know old-school C well but would like to get up to speed with a modern approach.
Computer Setup
This course will refer to the latest C standard ISO/IEC 9899:2018 (aka C17). Most exercises will be done in an online editor, so you just need to bring a laptop with a modern browser.
I'm head of software at Merkely. I specialise in practice, process, test driven development, and complex-adaptive systems-thinking.
I'm 35 years old (hex) and I've loved software since I was 10 (decimal).
I'm married to the beautiful Natalie, and proud father of Ellie, Penny and Patrick.
I built https://cyber-dojo.org to promote deliberate practice for software developers.
I was a self-employed consultant for 20 years. I worked with Accenture, Aviva, Cisco, Ericsson, Friends Provident, HP, Microsoft, Opera, Ordnance Survey, RBS, Reuters, Renault F1, Schlumberger, Tandberg and many many more.
I'm the co-author (with Olve Maudal) of the Deep C/C++ slide deck (over 1,000,000 views)
I'm the ex ECMA Task Group 2 C# convenor.
I've had some C# books published.
I'm the ex ACCU conference chairman.
I love coarse fishing and salmon fishing.
I live in Somerset, England.
On twitter I'm @JonJagger