Source: http://www.coding-guidelines.com/cbook/c90c .pdf