ANSI C compliant