C の _tmain() と main() の違い
C では、標準のプログラム エントリ ポイントは main() であり、これは次のシグネチャのいずれか:
int main(); int main(int argc, char* argv[]);
ただし、Microsoft は wmain() と呼ばれる拡張機能を導入しました。これにより、2 番目の署名が次のように置き換えられます:
int wmain(int argc, wchar_t* argv[]);
Unicode (UTF-16) とそのマルチバイト文字セット間の移行を容易にするために、Microsoft は Unicode が有効な場合に wmain としてコンパイルされる _tmain() も定義しました。 、それ以外の場合は main() として。
文字間の差異
の処理 あなたの例の main() と _tmain() の間の相違は、main() の誤った使用法から生じます。 wmain() は wchar_t 引数を受け入れるように設計されていますが、main() は char を想定しています。コンパイラは main() の正しい型の適用が緩いため、プログラムは wchar_t 文字列の配列を char 文字列として解釈します。
UTF-16 では、ASCII 文字はバイトのペアとして表されます。 ASCII 値の後に null バイトが続きます。 x86 CPU はリトルエンディアンであるため、これらのバイトはスワップされます。したがって、NULL で終了する文字列では、プログラムはそれぞれ 1 バイト長の一連の文字列を認識します。
Windows プログラミングのオプション
の場合Windows プログラミングを使用する場合、3 つの主要なオプションが利用可能です:
これらの Microsoft 固有の拡張機能は C 標準に準拠していないため、他のプラットフォームではサポートされない可能性があることに注意することが重要です。
以上がC Windows プログラミングにおける「main()」と「_tmain()」の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。