c99-gcc
Compile C99 code using GCC
SYNOPSIS
c99-gcc [options] file.c ... [-o output]
PARAMETERS
-std=c99
Default: Compile using C99 standard
-o file
Specify output file name
-c
Compile to object file only (no link)
-g
Generate source-level debug info
-On
Optimization level n (0-3, default 0)
-Wall
Enable common warning messages
-Wextra
Enable additional warnings
-pedantic
Strict standard conformance warnings
-Idir
Add include directory dir
-Ldir
Add library directory dir
-lname
Link library libname
-shared
Create shared object file
-v
Verbose output, show commands
-E
Preprocess only, output to stdout
DESCRIPTION
c99-gcc is a compiler frontend or alias that invokes the GNU Compiler Collection (GCC) with the -std=c99 flag enabled by default, targeting the C99 language standard (ISO/IEC 9899:1999). C99 introduced key features like inline functions, variable-length arrays (VLAs), complex and _Bool types, long long integers, compound literals, and designated initializers, improving expressiveness and portability over C90.
This command simplifies compiling modern C code that relies on these extensions while ensuring standards compliance. It processes C source files (.c), headers, and assembly, producing object files, executables, or libraries. Most gcc options are supported, including optimization, debugging, and linking.
Ideal for POSIX-compliant or embedded development, c99-gcc helps avoid C90 defaults in gcc. Note that full C99 support varies by GCC version; later ones (GCC 5+) are nearly complete, but some annexes like Annex F (IEC 60559) may require extensions. Combine with -pedantic for strict conformance.
CAVEATS
Full C99 support incomplete in older GCC (<5); VLAs deprecated in C11. Not a standard binary—often an alias for gcc -std=c99. Extensions may trigger warnings with -pedantic.
EXAMPLE USAGE
c99-gcc -Wall -o hello hello.c
Compiles hello.c to executable hello with warnings.
c99-gcc -std=c99 -O2 -lm -o mathapp math.c
Optimizes and links math library.
C99 FEATURES
Supports inline, _Bool, complex, // comments, long long. Use -std=gnu99 for GNU extensions.
HISTORY
C99 ratified 1999 by ISO. GCC added -std=c99 in v3.0 (2001). POSIX.1-2008 mandated c99 utility; Linux distros provide via gcc wrappers or symlinks since ~2008.


