auto
adalah kata kunci C lama yang berarti "ruang lingkup lokal". auto a
sama dengan auto int a
, dan karena cakupan lokal adalah default untuk variabel yang dideklarasikan di dalam suatu fungsi, itu juga sama seperti int a
dalam contoh ini.
Kata kunci ini sebenarnya adalah sisa dari pendahulu C, di mana tidak ada tipe dasar: semuanya int
, penunjuk int
, array int
. (*) Deklarasi akan berupa auto
atau extrn
[sic]. C mewarisi "semuanya int
" sebagai aturan default, jadi Anda bisa mendeklarasikan bilangan bulat dengan
auto a;
extern b;
static c;
ISO C menyingkirkan ini, tetapi banyak kompiler masih menerimanya untuk kompatibilitas mundur. Jika tampaknya tidak dikenal, maka Anda harus menyadari bahwa aturan terkait sedang bekerja di
unsigned d; // actually unsigned int
yang masih umum dalam kode modern.
C ++ 11 menggunakan kembali kata kunci, yang hanya sedikit jika ada programmer C ++ yang menggunakan makna aslinya, untuk inferensi tipenya. Ini sebagian besar aman karena aturan "semuanya int
" dari C sudah dijatuhkan di C ++ 98; satu-satunya hal yang rusak adalah auto T a
, yang tidak ada yang menggunakan pula. (Di suatu tempat di makalahnya tentang sejarah bahasa , Stroustrup berkomentar tentang ini, tapi saya tidak dapat menemukan referensi yang tepat sekarang.)
(*) Penanganan string dalam B menarik: Anda akan menggunakan array int
dan mengemas beberapa karakter di setiap anggota. B sebenarnya BCPL dengan sintaks yang berbeda.
int
telah dihapus dari standar C pada tahun 1999.