Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

Cで厳密なエイリアシングが必要なのはなぜですか?


ここでは、Cで厳密なエイリアシングを使用する必要がある理由を説明します。その部分について説明する前に、1つのコードを見て、出力を分析してみてください。

#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のみを返すように作成されています。この問題を修正するには、厳密なエイリアシングを使用できます。

修飾子の制限キーワードを使用します。これは、何かがポインター制限キーワードでエイリアスされていないことをコンパイラーに約束していることを示しています。約束を破ると、いくつかの問題が発生します。


  1. HTMLに必要な属性

    HTML必須属性は、HTMLドキュメントでフォームを送信する前にHTML要素に入力する必要があることを定義します。 入力に適用できます 、選択 、および textarea HTML要素。 構文 以下は構文です- <tagname required></tagname> 例 HTMLに必要な属性の例を見てみましょう- <!DOCTYPE html> <html> <style>    body {       color: #000;       he

  2. Windows 10 がダメな理由

    Windows 10 オペレーティング システムは世界的に有名であり、定期的な更新により独自性と信頼性を高めています。すべてのアプリとウィジェットは完璧ではありませんが、それでもかなり便利です。ただし、その設定と機能は改善される可能性があります。 Microsoft は、世界中で約 13 億人の Windows 10 ユーザーのユーザー ベースを楽しんでいます。多くの人が Windows 10 は最悪だと考えています。それは、ポップアップするさまざまな問題のためです。たとえば、ファイル エクスプローラーの破損、VMWare との互換性の問題、データの削除などの問題に直面する可能性があります。ま