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;
}