This document discusses three ways to write a C program without using the main function. The first way uses the #define preprocessor directive to replace "begin" with "main". The second way uses the ## token merging operator in a #define to merge the characters "m", "a", "i", and "n" together. The third way uses an argumented macro to define a function called "begin" that serves the same purpose as main.