私の理解では、Python の標準バージョンは C89 で記述されています。後でPythonにCベースの拡張機能を作成することに興味がありますが、CIのどのバージョンを使用する必要があるかについて少し混乱しています(Pythonのドキュメントでは見つかりませんでした)。Python は C89 にあるので、C89 でコーディングする必要がありますか?それとも C11 コードも同様に機能しますか?
質問する
442 次
1 に答える
5
言語としての C は、C89 以降、比較的マイナーな進化しか見ていません。C89、C99、および C11 の交差点でコーディングするのは非常に簡単です。これは、私が推奨することです (Python とのインターフェースではなく、ABI レベルにあるものですが、一般的なソースレベルのベストプラクティスとして) )。
私の考えでは、C89 に限定すると、for (int i=0;…)
構文、可変長配列、および複素数が失われます。
C99 用に作成すると、int
C89 で許可されていた暗黙の型で変数を宣言できなくなります。それは決して良い考えではありませんでした。
C11 は、以前の標準ではあいまいだった一部の構造が禁止されていることを明確にしています: INT_MIN % (-1)
, (0,i++,j) + (0,j++,i)
(議論; コメントを参照)。
//
C99 で導入された最も便利な追加機能は、C++ スタイルのコメントかもしれません。しかし、ほとんどのコンパイラは、C99 が公開される前から拡張機能としてそれらを受け入れていたため、2013 年にそれらの使用を控える理由はありません。
于 2013-05-06T17:05:26.013 に答える