Varattu sana auto tarkoittaa, että muuttujasta tehdään automaattinen muuttuja. Oletuksena jokainen lokaali muuttuja, joka ei ole esitelty static - määrityksellä, on automaattinen muuttuja. Tämän vuoksi auto- sanaa harvoin käytetään. Muuttujan automaattisuus tarkoittaa sitä, että kun muuttujan määrittelylohkosta poistutaan, tuhotaan muuttuja samalla.
{ int mm; /* sama kirjoitetaanko näin */ auto int mm; /* vai näin */
Joskus kääntäjän työn helpottamiseksi voidaan kääntäjälle ehdottaa jonkin lokaalin muuttujan sijoittamista prosessorin (CPU) rekisteriin ja näin saadaan muuttujan käyttö nopeammaksi. Tämä tehdään varatulla sanalla register.
#include <stdio.h> int main(void) { register int i; for (i=0; i<4; i++) printf("i=%d\n",i); /* Seuraava ei toimi koska rekisteristä ei saada osoitetta */ /* printf("i:n osoite on %p\n",&i); */ return 0; }