Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The International Obfuscated C Code Contest (IOCCC) is a long-running contest in which programmers write deliberately hard-to-read C programs that still do something interesting. Founded on March 23, 1984, it publishes winning entries, rules, and judges’ remarks by edition. The official site identifies the 2025 contest as IOCCC29, and its official news page also announced the release of the 40th-anniversary IOCCC28 winners.

What is the IOCCC?

IOCCC stands for the International Obfuscated C Code Contest. Its challenge is not simply to write confusing code: an entry should use the structure, presentation, or techniques of C to make its source unusually difficult to understand while producing a working, entertaining, or otherwise notable result. The contest’s official winners repository describes it as “the Internet’s oldest ongoing contest” and dates its start to March 23, 1984, in its historical account and winners repository.

Entries have taken the form of games, utilities, interpreters, demonstrations, and other programs. The interest lies in the gap between what a source file appears to say and what the compiled program actually does. Obfuscation may involve compressed identifiers, unusual preprocessor use, encoded data, parser tricks, or self-reference; the specific technique and result are best understood through an entry’s source and judges’ notes.

Where to find IOCCC winning code

The official IOCCC winners repository is the most practical starting point. It organizes released winners by edition and may include source files, Makefiles, judges’ hints, and comments. The official years index helps browse entries by year and award category, while the news page tracks releases and announcements.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

There is also an official historic archive of compressed snapshots through 2020. Its maintainers warn that archived material can include typos, broken links, missing files, and programs that will not compile or run on modern systems. Treat older entries as historical artifacts as well as code: compiler behavior, operating systems, and dependencies may have changed since an entry was submitted.

How to explore an entry

  1. Choose an edition. Start with the years index or repository and open the year directory for an entry that interests you.
  2. Read the judges’ remarks and hints first. They provide the judging context and can explain what to look for without requiring you to decode every line unaided.
  3. Inspect the source and build files. Check the included Makefile and notes for compiler assumptions or dependencies. Some historic programs may need build adjustments, and portability varies.
  4. Build and run cautiously. Use an isolated environment for unfamiliar code, especially when adapting older entries. Do not assume that a source file will compile unchanged with a current compiler or behave identically on every system.
  5. Compare the result with the source. Ask what makes the implementation obscure, what the program actually does, and how the technique contributes to the effect.

How to enter the contest

There is no single timeless IOCCC rulebook. Each edition has its own rules, and the official repository says each year’s archive contains the rules for the upcoming contest. If you intend to submit, use the rules for that specific edition rather than relying on an older entry’s instructions or a summary of a previous year.

The current guidelines describe submission practices, including use of the mkiocccentry tool and precautions intended to preserve entrant anonymity. Follow the edition-specific instructions and tool documentation closely; requirements and award categories can change between contests. The official repository is the starting point for year-specific archives and rules.

What makes an IOCCC entry worth studying?

“Best” is subjective: categories differ between editions because judges determine them after examining the entries. A useful comparison looks beyond how cryptic a file appears and considers several distinct dimensions:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Obfuscation technique: Identify the mechanism—such as preprocessor abuse, compact identifiers, encoded data, parser behavior, or self-reference—and how it shapes the source.
  • Program behavior: Determine what the entry actually does and whether the result is surprising, entertaining, or useful.
  • Build and portability: Note compiler, operating-system, and dependency assumptions. An ingenious old entry may be difficult to reproduce on a modern system.
  • Judging context: Read the award category and remarks for that edition. They explain what the judges recognized under that year’s rules.

The official year-by-year index is a better route to selecting examples than treating one entry as universally definitive: categories and judging context vary across editions.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Recent IOCCC editions

The official site identifies the 2025 edition as the 29th contest, IOCCC29, and links its winning entries on the IOCCC29 page. The official news page also reports the release of the 40th-anniversary IOCCC28 winners, with source published through the site and GitHub.

Rank #4
The SQL Programming Language: .
  • Used Book in Good Condition

For a specific example from IOCCC29, Tom’s Hardware reported in June 2026 that a winning Pong program recompiles its own source on every frame. The publication also reported that the winners were presented in a YouTube livestream on June 6, 2025. Those implementation and livestream details come from Tom’s Hardware’s report; use the official contest pages for the edition’s status and released entries.

Quick Recap

Bestseller No. 3
Bestseller No. 4
The SQL Programming Language: .
The SQL Programming Language: .
Used Book in Good Condition
$4.23
Bestseller No. 5
Coding Definition - Funny Sarcastic Programming Explanation Hardcover Journal, Black
Coding Definition - Funny Sarcastic Programming Explanation Hardcover Journal, Black
Hardcover journal with 240 line-ruled pages (120 sheets); Built-in elastic closure and ribbon bookmark
$16.99
Best Value
Coding Definition - Funny Sarcastic Programming Explanation Hardcover Journal, Black
  • Awesome design - the perfect statement piece for anyone who wants to show their love for Coding and funny humor. With its retro design and funny expression, it is sure to turn heads and start conversations.
  • Looking for unique and memorable gifts for women or men? This eye-catching vintage design is the perfect choice! Great gifts for colleagues, friends and family.
  • Hardcover journal with 240 line-ruled pages (120 sheets)
  • Built-in elastic closure and ribbon bookmark
  • Includes an expandable inner storage pocket and a pen holder

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.