features of c programming