ที่นี่เราจะดูว่าคีย์เวิร์ดจำกัดคืออะไรใน C. คีย์เวิร์ดจำกัดเปิดตัวครั้งแรกในเวอร์ชัน C99 ให้เราดูว่าคีย์เวิร์ดที่จำกัดนี้จริงๆ แล้วคืออะไร
-
คีย์เวิร์ดจำกัดใช้สำหรับการประกาศตัวชี้เป็นตัวระบุประเภทของตัวชี้
-
คีย์เวิร์ดนี้ไม่ได้เพิ่มฟังก์ชันใหม่ การใช้สิ่งนี้โปรแกรมเมอร์สามารถแจ้งเกี่ยวกับการเพิ่มประสิทธิภาพที่คอมไพเลอร์สามารถทำได้
-
เมื่อใช้คีย์เวิร์ดจำกัดกับพอยน์เตอร์ p มันจะบอกคอมไพเลอร์ว่า ptr เป็นเพียงวิธีเดียวในการเข้าถึงอ็อบเจ็กต์ที่ชี้โดยสิ่งนี้ ดังนั้นคอมไพเลอร์จะไม่เพิ่มการตรวจสอบใดๆ เพิ่มเติม
-
หากโปรแกรมเมอร์ใช้คีย์เวิร์ดที่จำกัดแล้วละเมิดเงื่อนไขข้างต้น มันจะสร้างพฤติกรรมที่ไม่ได้กำหนดไว้
ตัวอย่าง
#include <stdio.h>
void my_function(int* x, int* y, int* restrict z) {
*x += *z;
*y += *z;
}
main(void) {
int x = 10, y = 20, z = 30;
my_function(&x, &y, &z);
printf("%d %d %d", x, y, z);
} ผลลัพธ์
40 50 30