Advanced C Programming  Course

This course will take you to the next level as a C programmer. You will learn advanced C programming concepts, and techniques to make your code more efficient and more portable.

Duration: 5 days. Courses are presented from 08:30 to 16:30.
Investment: R10,900.00 excluding VAT per delegate.
Venue: The Incus Data Training Venue in Centurion, Pretoria. Courses can also be presented on-site for 5 or more delegates.
Dates: Please check the course schedule for the next available date.
You can also contact us at tel: (+27) 12-666-2020 or cell/WhatsApp: (+27) 76-694-7705, or email us at to find out about dates that suit you.

Download the Advanced C Programming course contents in PDF format

Please fill in this form if you would like us to contact you about your training requirements, or if you would like to be kept informed of dates for the Advanced C Programming course.

Fields marked with * are required.

Please enter your name

Please enter your surname

Please enter a valid phone number eg. 0126662020

Please enter a valid email address

If you would like us to email you a formal quote, please complete the following:

Type in 'Private' if you are paying for yourself.

Incus Data does not sell or otherwise distribute email addresses. We will not divulge your personal information to anyone unless specifically authorised by you.

Audience: Is This The Right Course For Me?

You should attend the Advanced C Programming course if:

  • You are a C programmer and you want to learn about the advanced aspects of the C language.
  • You are a C programmer and you want to learn to write better C code.
  • You are an engineer working with embedded systems written in C.

Prerequisites: Am I Ready For The Course?

Before you attend the Advanced C Programming course:

  • You must have attended our Standard C Programming course or already be comfortable with the fundamentals of the C programming language.
  • You should have at least 6 months practical experience programming in C.

Please ensure you meet the prerequisites for this course before you attend. Read the importance of course prerequisites to understand why this is necessary.

If you are not sure which is the right course for you, please call us. We will be happy to advise you, based on your training goals and your experience.

Objectives: What Will I Learn?

After you have completed the Advanced C Programming course, you will be able to:

  • Understand advanced C programming techniques.
  • Understand and use all types of pointers.
  • Use self-referencing structures and link lists.
  • Manage memory within C applications.
  • Understand performance-related issues.

Technical Contents: What Does The Course Cover?

  • Professionalism.
  • Portability.
  • Modularity.
  • Structured programming.
  • Coding standards.
  • Standard library functions.
  • Non-standard functions.
  • Under-utilized functions.
The C compiler
  • Technical aspects.
  • Startup module.
  • Modifications for embedded / custom systems.
  • Translation order and tokenization.
  • Object modules.
  • Compiler switches.
The C Preprocessor
  • Conditional compilation.
  • Token concatenation.
  • Stringization.
  • Charization.
  • Compilation units.
  • Trigraphs.
  • Advanced macros.
Expressions, Types and Variables
  • Expression evaluation.
  • Operator association and precedence.
  • Sequence guarantee points.
  • Implicit/explicit type conversions.
  • Literals.
  • Escape characters.
  • Type hierarchy.
  • Derived types.
  • Bitfields.
  • Portability.
Functions, Statements and Program Structure
  • Overview.
  • Stack usage for local variables and parameters.
  • Function returns.
  • Function call operator.
  • Variable number of parameters.
  • Structured programming vs OOP techniques.
  • Libraries and make files.
Arrays and Pointers
  • Array names.
  • Array manipulation.
  • Multi-dimensional arrays.
  • Pointer variables.
  • Indirection.
  • Dynamic arrays and pointers.
  • Pointers to structures and functions.
Memory management
  • The C runtime memory.
  • Stack, heap and static data areas.
  • Dynamic memory.
  • Fragmentation of memory.
  • Memory management techniques.
Data Structures
  • Creating and using structures.
  • Self-referencing structures.
  • Linked lists.
  • Generic data structures.
  • Portability.
  • Memory management.
  • Information hiding.
Debugging Techniques
  • Stabilization: lexical, syntactic, execution, logic errors.
  • Error proximity.
  • Debuggers.
  • Memory initialization.
  • Structure sentinels.
  • Stack errors.
  • Conditional compilation.
  • Introduction to numerical methods, encryption, sorting and algorithm evaluation.
  • Introduction to C++.
  • Graphical User Interfaces.

Testimonials: What Other Delegates Say About This Course

"This course helped me understand many concepts that I didn't understand before. Several new concepts were also introduced. I will recommend this course to anyone interested in expanding their knowledge of C."

J. Prinsloo, Nanoteq   (Lecturer: Renier)

"Much better experience than other courses I've been on. Really good material presented in a simple to understand way."

J. Hendriks, SAAB Grintek Defence   (Lecturer: Renier)

"Very helpful course, knowledgeable lecturer! Very good food!!"

F. Möller, SAAB Grintek Defence   (Lecturer: Renier)

"Invaluable perspectives delivered!"

S. Ferreira, SAAB Grintek Defence   (Lecturer: Renier)

"Very good course and the lecturer is knowledgeable about the subject."

K. Merementsi, SAAB Grintek Defence   (Lecturer: Renier)

"Very detailed coverage that is hard to come by. I learned a lot about a so called "simple" language."

G. Zietsman, SAAB Grintek Defence   (Lecturer: Renier)

"Well presented course, thoroughly enjoyed it"

S. Mahomed, DetNet   (Lecturer: Renier)

"Excellent venue, very interesting and well presented."

R. Davies, Denel Aviation   (Lecturer: Renier)

"I appreciate the lower level detail introduced by this course i.e. answering the "why" questions."

A. Jacobs, Denel Aviation   (Lecturer: Renier)

"The course content will help a great deal in my work."

L. Sibiya, Nedbank   (Lecturer: Renier)

"Well structured & comfortable environment with really delicious food. Will recommend and definitely come for another course."

D. L. Weatherhead, Net1 UEPS   (Lecturer: Renier)

"This was a well structured course, presented in an interesting manner."

B. Wanda, Net1 Applied Technologies   (Lecturer: Renier)

"Very valuable course. Stressing of C rules was very good."

R. Schwartz, Itron   (Lecturer: Renier)

"Great course, would like to see some of the other languages sometime. Good food !:)"

M. Janse van Rensburg, Net 1   (Lecturer: Lewis)

"Very impressed and satisfied by the lecturer's delivery and level of knowledge."

M. Motlhabane, Denel Dynamics   (Lecturer: Lewis)

"The course was extremely informative and I felt like I learnt a lot. The food was also very good!"

Y. de Jongh, Denel Dynamics   (Lecturer: Lewis)

" If the paper had ratings of 11 I would have chosen it. [Referring to course evaluation form which allows ratings from 1 (poor) to 10 (good)] "

G. Breedt, Transnet   (Lecturer: Renier)

"Will most definitely recommend this and the Standard C course to other people."

D. Theunissen, Nanoteq   (Lecturer: Renier)

"A must for anyone using C!"

E. Behrens, Nanoteq   (Lecturer: Renier)

"Woorde kan dit nie beskryf nie, en sinne gaan net nie genoeg wees nie. Uitstekend. [Words cannot describe it and sentences will not be sufficient. Exceptional]"

L. van Niel, Net1 Applied Technologies   (Lecturer: Renier)

"This course really opened my eyes to the power of C if used correctly and the right coding standards are followed. I also picked up my weak points (stuff I initially thought I knew) which I have to improve on."

L. Tlatsi, Net1 Applied Technologies   (Lecturer: Renier)

"Impressed, I learnt quite a bit even though I have been programming in C++ for a very long time."

I. Craig, Denel Dynamics   (Lecturer: Renier)

"I enjoyed the relaxed yet professional nature of this course and found the material will be helpful and feel that my knowledge definitely has improved."

R. Hancock, Net1   (Lecturer: Renier)

"I should saved my self the 3 years of varsity and come here"

J. Mashaba, Net1   (Lecturer: Renier)

"Very good and highly informative."

B. Fiddes, Nanoteq   (Lecturer: Renier)

"Very well presented and recommended."

A. Moelich, SAAB   (Lecturer: Renier)

"My expectations were greatly exceeded, I thoroughly enjoyed the course, it introduced and explained many concepts."

T. Ntamane, Net1   (Lecturer: Renier)

"I really enjoyed this course! And learnt a lot. Renier's enthusiasm makes me want to do better in this subject"

K. Reid, Nanoteq   (Lecturer: Renier)

How Do I Book?

It's easy to book: Fill in our course enrolment form (editable PDF file) and email it to us at

After we have received your booking, we will send you a confirmation that you are booked on the course, an invoice and directions to the venue.

Tip: Most PDF readers, other than Adobe Reader, will let you save the form with the data you have entered. If you are using Adobe Reader, however, you might not be able to do this. But don't despair: when you have typed in the information, just print the file to PDF - and you'll have a completed enrolment form ready to email to us.