> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/TinyCC/tinycc/llms.txt
> Use this file to discover all available pages before exploring further.

# Introduction to TinyCC

> The smallest and fastest ANSI C compiler for scripting everywhere

# Introduction to TinyCC

TinyCC (also known as TCC) is a small but hyper-fast C compiler. Unlike other C compilers, it is self-relying—you don't need an external assembler or linker because TCC does that for you.

> **[Installation](https://mintlify.com/TinyCC/tinycc/installation.md)**
>
> Get TinyCC running on Linux, BSD, macOS, or Windows

> **[Quick start](https://mintlify.com/TinyCC/tinycc/quickstart.md)**
>
> Compile and run your first C program in seconds

> **[Command line](https://mintlify.com/TinyCC/tinycc/cli/command-reference.md)**
>
> Learn TCC command line options and usage

> **[C scripting](https://mintlify.com/TinyCC/tinycc/cli/scripting.md)**
>
> Run C code like shell scripts with shebang support

## Why TinyCC?

### Small

You can compile and execute C code everywhere, even on rescue disks. TCC's tiny footprint makes it ideal for embedded systems, minimal environments, and situations where disk space is limited.

### Fast

TCC generates machine code for i386, x86\_64, ARM, AArch64, and RISC-V. It compiles and links **about 10 times faster than `gcc -O0`**. For many projects, compilation is so fast that you don't even need Makefiles.

```bash Traditional compilation theme={null}
# Typical GCC workflow
gcc -O0 hello.c -o hello
time: 0.5s
```

```bash TCC compilation theme={null}
# Same code with TCC
tcc hello.c -o hello
time: 0.05s
```

### Unlimited

Any C dynamic library can be used directly. TCC supports ANSI C, most of ISO C99, and many GNU C extensions including inline assembly. TCC can even compile itself.

### Safe

TCC includes an optional memory and bounds checker. Bounds-checked code can be mixed freely with standard code, and checks work even with unpatched libraries.

## Key features

> **Direct execution**
>
> Compile and execute C source directly without linking or assembly steps

> **C scripting**
>
> Add `#!/usr/local/bin/tcc -run` to your C source and execute it like a shell script

> **Full preprocessor**
>
> Complete C preprocessor included with macro support

> **Dynamic code generation**
>
> Use `libtcc` as a backend for runtime code generation

> **Multi-architecture**
>
> Supports i386, x86\_64, ARM, AArch64, and RISC-V architectures

> **Bounds checking**
>
> Automatic memory and bounds checking for safer code

## Use cases

**1. Rapid prototyping**

Get instant feedback on your C code without waiting for slow compilation cycles. Perfect for learning C or testing algorithms.

**2. C scripting**

Write system utilities and automation scripts in C instead of shell or Python. Get the performance of C with the convenience of scripting.

**3. Embedded development**

Deploy a complete C compiler on resource-constrained systems where larger toolchains won't fit.

**4. Build-free development**

Skip complex build systems and Makefiles. Just run your code directly during development.

> [!NOTE]
>
> TCC aims for full ISO C99 compliance and includes many GNU C extensions. It can compile standard C code that works with GCC or Clang.

## Platform support

TinyCC runs on:

* **Linux** (all major distributions)
* **BSD variants** (FreeBSD, OpenBSD, NetBSD)
* **macOS** (Intel and Apple Silicon)
* **Windows** (native Win32 support)

Target architectures:

* i386 (32-bit x86)
* x86\_64 (64-bit x86)
* ARM (32-bit)
* AArch64 (64-bit ARM)
* RISC-V (64-bit)

## Next steps

> **[Install TinyCC](https://mintlify.com/TinyCC/tinycc/installation.md)**
>
> Follow the installation guide for your platform

> **[Try the quick start](https://mintlify.com/TinyCC/tinycc/quickstart.md)**
>
> Compile and run your first program in under a minute


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.