Computer >> Máy Tính >  >> Lập trình >> lập trình C

Tại sao cần phải có bí danh nghiêm ngặt trong C?

Ở đây chúng ta sẽ thấy, tại sao chúng ta nên sử dụng bí danh nghiêm ngặt trong C. Trước khi thảo luận về phần đó, chúng ta hãy xem một mã và cố gắng phân tích đầu ra.

Ví dụ

#include<stdio.h>
int temp = 5;
int* var = &temp;
int my_function(double* var) {
   temp = 1;
   *var = 5.10; //this will change the value of temp
   return (temp);
}
main() {
   printf("%d", my_function((double*)&temp));
}

Đầu ra

1717986918

Nếu chúng ta gọi hàm là my_ Chức năng, thì nó sẽ trả về 1. Chúng ta cũng có thể gọi hàm này bằng cách sử dụng hàm my_ functions ((double *) &temp). Điều này được cho là trả về 1, nhưng ở đây chúng ta có thể thấy rằng điều này đang trả về một thứ khác. Mã này được thực hiện để chỉ trả về hằng số 1. Để khắc phục sự cố này, chúng tôi có thể sử dụng Đặt biệt hiệu nghiêm ngặt.

Sử dụng từ khóa định tính hạn chế. Nó chỉ ra rằng chúng tôi đang hứa với trình biên dịch rằng một cái gì đó không phải là bí danh với từ khóa giới hạn con trỏ. Nếu chúng tôi thất hứa, sẽ có một số vấn đề.