The International Obfuscated C Code Contest (IOCCC) is a long-running contest for C programs that are deliberately hard to understand yet still do something interesting. Founded in 1984, it publishes winning entries, edition-specific rules and judges’ remarks online. The latest edition covered by the official site is IOCCC29, whose winners were published in 2025.
What is the IOCCC?
The IOCCC challenges programmers to use C in surprising, inventive ways. An entry might obscure its logic through dense formatting, compressed identifiers, preprocessor tricks, encoded data or self-reference, while producing a game, utility, interpreter or other working result.
As an Amazon Associate I earn from qualifying purchases.
The contest began on March 23, 1984, according to the official winners repository’s history. That repository describes the IOCCC as “the Internet’s oldest ongoing contest” and organizes winning entries into numbered editions. Awards are not necessarily fixed categories: the judges determine categories after examining the submissions, so the award names can vary from year to year.
Where to find winning code
The official IOCCC winners repository on GitHub is the main starting point for released entries. Its year-by-year directories include source files and, depending on the entry, Makefiles, hints and comments. The repository also notes that some programs need build adjustments and that compiler portability varies.
#1 Best Overall
For a year-and-award overview, use the official winners index. The official news page is the place to check for release announcements. The official site documents a major rebuild in 2024 involving more than 6,168 commits during what it calls the Great Fork Merge.
The historic archive preserves compressed snapshots through 2020, but it is not a promise that old software will work on a current computer. The archive warns that it contains old typos, broken links, missing files and programs that may not compile or run on modern systems.
How to enter the IOCCC
There is no single timeless rulebook for every edition. The official repository says each archive contains a copy of the rules for the upcoming contest, and the current guidelines describe submission practices. Read the rules for the specific edition you plan to enter; requirements and award categories can change.
Recommended Free Tools
- Choose the edition and read its rules. Start with the current guidelines linked from the official IOCCC site, then confirm you are following the rules for the intended edition.
- Prepare your submission using the prescribed process. The guidelines reference the
mkiocccentrytool and explain submission practices, including steps intended to preserve entrant anonymity. Follow the edition’s instructions rather than assuming a prior year’s process still applies. - Check the entry against that edition’s requirements. Confirm the source, build instructions and submission package satisfy the applicable rules before sending it. The contest’s central challenge is to combine an obfuscated C program with a result that works or entertains.
How to choose an entry to read
There is no objective “best” IOCCC entry: the judges’ categories and remarks reflect the context of each edition, and entries aim for different effects. The year index and each entry’s notes are better guides than a universal ranking. To compare entries fairly, consider:
- Obfuscation technique: Identify whether the entry relies on preprocessor behavior, compressed identifiers, self-reference, data encoding, parser tricks or another documented method.
- What it does: Look at the actual behavior, not only how difficult the source appears. A surprising or useful result is part of the contest’s appeal.
- Build and portability: Check the compiler, operating system and dependencies, and expect that older code may need adaptation.
- Judging context: Note the edition, award category and judges’ remarks, along with the rules in force that year.
For current examples, the official site lists IOCCC29 as the 29th edition and links to its winning entries. The official news page also reports the release of IOCCC28, identified as the 40th-anniversary edition. A June 2026 Tom’s Hardware report describes an IOCCC29 Pong winner that recompiles its own source on every frame; the report says the winners were presented in a YouTube livestream on June 6, 2025. Treat that implementation detail and livestream date as secondary reporting, and use the official entries and notes to inspect the code itself.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Why obfuscated C can be clever
Obfuscation is not simply unreadable code for its own sake. In the IOCCC, the challenge is to make C’s syntax, constraints and behavior work together so that a program’s source is difficult to parse but its outcome is coherent, entertaining or technically unexpected. Reading an entry alongside its judges’ remarks helps distinguish purposeful technique from mere compression—and explains why the same trick may be judged differently in different editions.
Quick Recap
Best Value
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.
Free tools Windows power users keep installed
One-click scans. No signup required.




