為什麼在 C 中需要嚴格別名?
我們將在此瞭解為什麼我們在 C 中使用嚴格別名。在我們討論這部分內容之前,讓我們看一個程式碼,並嘗試分析輸出。
示例
#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)); }
輸出
1717986918
如果我們呼叫函式 my_function,它將返回 1。我們也可以使用 my_function((double*)&temp) 呼叫此函式。這本來應該返回 1,但這裡我們可以看到它返回另一個物件。此程式碼的目的是僅返回常量 1。為了解決此問題,我們可以使用嚴格別名。
使用 restrict 限定符關鍵字。它指示我們向編譯器承諾不會將任何內容與 restrict 指標關鍵字形成別名。如果我們違背承諾,則會出現一些問題。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP