Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

Register Storage Class ในภาษา C

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