C language


C language (wikipedia) is a programming language developed by Dennis Ritchie. It is an imperative, statically typed language.
C code maps efficiently to machine instructions because of its low level.

Standards


C99 standard
C99 Rationale

C11 standard
C1X final draft

POSIX standard (Wikipedia)
"Base Specifications". Posix.1-2008 (7). The Open Group


Standard Library


C standard library (Wikipedia)


C FAQs


comp.lang.c FAQ

C - Infrequently asked questions


Papers


What every programmer should know about memory (Ulrich Drepper)

Latency Numbers Every Programmer Should Know

How to C (as of 2016)


Security


SEI CERT C Coding Standard

Secure Programming HOWTO - Creating Secure Software


Tools


The C Preprocessor

GCC command line options

Bison (Parser generator)
Flex The Fast Lexical Analyzer

Doxygen syntax - How to document with Doxygen


GNU Make and autotools

Make tool
GNU Make manual
GNU Make Quick Reference

Autoconf



CMake

GDB: The GNU Project Debugger
GDB cheatsheet

Valgrind

Git Command Quick Reminder



C data types


C data types (Wikipedia)


Floating Point

IEEE floating point (Wikipedia)

What Every Computer Scientist Should Know About Floating-Point Arithmetic

Can a IEEE 754 real number “cover” all integers within its range?

Anatomy of a floating point number



C Structures



Abstract Data Types (ADT)

An abstract data type (ADT) is a data type whose representation is hidden from the client.

When coding an ADT we focus in data and the operations we perform with it, without focusing in its internal implementation.

ADT is a way to provide encapsulation to our program design.

Abstract data type (wikipedia)

Why Study ADT

ADT in C



ASSERTIONS


How to use assertions in C

assert.h (Wikipedia)



Exception mechanism


C does not provide a direct exception mechanism, but we can implement one using non-local jumps (setjmp) or with goto-s:

setjmp.h (Wikipedia)

C: goto statement considered helpful (Exception mechanism)



C tips


C tips

C: goto statement considered helpful



C - POSIX - Multithreading Programming


C POSIX Multithreading Programming



The International Obfuscated C Code Contest


Bad code is also interesting...
http://www.ioccc.org/



Other


Tags for C language in emacs