what are the characteristics of c programming