Register storage class = เก็บตัวแปรใน CPU register แทน RAM เร็วกว่า
คุณสมบัติ
- Keyword:
register - เก็บใน CPU register (temporary storage)
- เข้าถึงเร็วกว่าตัวแปรปกติ
- ไม่สามารถ取 address ได้ (& ไม่ได้)
- เหมาะกับ loop counter, ตัวแปรที่ใช้บ่อย
โปรแกรมที่ 1: Register loop counter
#include <stdio.h>
main() {
register int i;
for (i = 1; i <= 5; i++)
printf("%d ", i);
}
ผลลัพธ์
1 2 3 4 5
โปรแกรมที่ 2: ค่า default ของ register
#include <stdio.h>
int main() {
register int a;
printf("%d", a); // default 0
}
ผลลัพธ์
0
โปรแกรมที่ 3: พยายาม取 address ของ register (Error)
#include <stdio.h>
int main() {
register int i = 10;
int *p = &i; // Error: address of register variable requested
printf("%d", *p);
}
ผลลัพธ์
Error: address of register variable requested