LinuxCommandLibrary

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.

SEE ALSO

gcc(1), cc(1), clang(1), c99(1)

Copied to clipboard