ที่นี่เราจะดูว่าคีย์เวิร์ดจำกัดคืออะไรใน 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