C99

Computational Class

Finite-automata-complete

Programming Paradigms

Defined by

http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf

Implementations

Things written in C99

Compilers targeting C99

Commentary

When an implementation in Chrysoberyl says it requires C99, it (in theory) means that the source files in it conform to the C99 standard. These souce files generally are such that they would compile with the -ansi flag except that they rely on libraries specified by the Single UNIX Specification version 3 (also, and more popularly, known as POSIX) to provide access to resources such as clock information and network sockets.

Most modern UNIX-like operating systems implement something approximating the POSIX interface. For Windows, compatibility layers such as Cygwin fill this role.

Note that the specification linked to is actually SUSv7, which is very similar to SUSv3, but unlike SUSv3 has freely-accessible documentation on the web.

Many of our C projects will compile both as C99 and as ANSI C — perhaps omitting some features in the ANSI C version — by passing the environment variable ANSI=yes to make.