先日、C99規格で書かれたプログラムをC11にコンバートしていました。基本的には MSVC でコードを使用することを目的としていましたが、これは Linux で書かれており、ほとんどがデフォルトの GCC 動作でコンパイルされていました。コード変換中に、ステートメントの後に関数の変数を宣言できないことがわかりました。つまり、関数の先頭で変数を宣言する必要があります。
しかし、私の質問は、キャッシュ ヒットを最大化するために、変数をその使用の近くで宣言する必要があるという効率的なプログラミング規則に反するのではないかということです。たとえば、LOC が 200 の大きな関数では、関数の最後近くで大きな静的ルックアップ配列を使用したいと考えています。使用の直前に宣言して初期化すると、キャッシュ ヒットが増えませんか? それとも、C11 C言語標準のいくつかの基本的なポイントが欠けているだけですか?