c言語の質問です。

main(void){
register int a[10], i;
for(i = 0; i < 10; i++)
scanf("%d", a[i]);
}
というようにレジスタ上の配列aに数値を読みこみたいのですが、
windowsのgccでコンパイルするとwarningが出てしまい、
配列aはレジスタ上に配置されずにメモリに配置されている予感がします

これをレジスタ上に確保したままfor文で数値を読み込む方法はあるのでしょうか?