Advanced C

Understand C on a higher level, including its memory handling, optimizations and advanced constructs.

The course gives in-depth understanding of logic behind C language. Participants would understand how commands written in C are mapped to processor instructions, memory handling, pointers and function callbacks and more advanced C constructs. Finally, the course gives practical pointers on how C programs are optimized and applied in a specific embedded environments.

Course topics:

  • C data types, arrays vs pointers, casting, little vs big endian

  • Declarations, variables, storage classes, types, constants, static and automatic duration, memory locations, linkage

  • Function caveats, calling conventions, calling from assembly

  • Pointer arithmetic, multi-dimensional arrays, function pointers, void pointers, endianness

  • Input-output and I/O dangers

  • Strings and safe string handling in C, structures, member alignment and padding

  • Splitting a program, declaration sharing, header files

  • Build process and tools, preprocessor, compiler, linker, scripting

  • Memory handling, buffers, queues, lists, double buffering

  • Cross-compilation, embedded targets, compiler specifics

Hardware (required): Computer with Internet connection, working speakers and microphone.

Software: Chrome browser.

Course Typically Offered: Live Online in Fall quarter (mid June - August), Winter quarter (mid January - March), Spring quarter (April - mid June) or Summer quarter (mid June - August).

Prerequisites: Students should have basic programming knowledge in C.

Next Step: To gain additional knowledge in specific domains where C language is heavily utilized, consider taking the courses from the Automotive engineering catalog (NIT-AU-XX) or Consumer electronics catalog (NIT-CE-XX).

Course Number: NIT-CE-02

Duration: 3.00 units (~30 live teaching hours, ~60 hours of individual practice and preparation work)

Offered next: TBA (call for price)

Class type: Live Online Intensive (according to the schedule published at the beginning of the course, approximately 3x2 live classes per week)

Instructor: To be announced

How to join: Google Meet (link will be available upon enrollment ), NIT Canvas

How to apply: Please apply by filling up the form here and we will get in touch with you as soon as possible.

Customized schedule for your company or team (call for price)

Class type: Live Online (Regular or Intensive), Live Bootcamp (Company premises)

Instructor: To be announced

For groups and organizations: please contact us directly to arrange this course according to your scheduling, needs and participant lists - via the contact form here.