Chociaż każdy program w języku C jest wyjątkowy, w większości programów można znaleźć pewne wspólne struktury. Omówimy je w kilku następnych sekcjach. main() Wszystkie programy w C „powinny” (zobacz wyjątek w sekcji „Dalsza lektura”) zawierają funkcję main() (małe litery) zgodną z formatem
gdzie zarówno typ wartości zwracanej, jak i argumenty są opcjonalne. Jeśli nie określono typu wartości zwracanej, używany jest typ zwracany int; jednakże niektóre kompilatory mogą generować ostrzeżenia, jeśli nie określisz zwracanej wartości jako int lub spróbujesz użyć void. Jeśli używasz argumentów wiersza poleceń dla funkcji main(), możesz użyć formatu
(między innymi), gdzie liczba całkowita argc przechowuje liczbę argumentów, a tablica argv przechowuje argumenty wejściowe (łańcuchy). Nazwa programu jest zawsze przechowywana pod offsetem argv[0]. Nawiasy i nawiasy są obowiązkowe. Nawiasy służą do oznaczenia początku i końca bloku kodu. Chociaż wywołania procedur i funkcji są opcjonalne, bez nich program nic by nie zrobił. Instrukcja procedury to po prostu seria poleceń, które wykonują operacje na danych lub zmiennych i zwykle kończą się średnikiem.