6

私はopenGLの初心者です。すべての単純な例で、main 関数には引数があり、glutinit 関数はそれらを使用します。しかし、なぜそれらが必要なのかわかりません。コマンド引数に何も書きませんが、プログラムは引き続き動作します。それらは何に使用されますか?例を挙げていただけますか?

glutInit(&argc, argv)
4

3 に答える 3

2

glutInit は、GLUT ライブラリを初期化するために使用されます。C では、コマンド ライン引数を受け入れることができます。コマンドライン引数は、DOS や Linux などのコマンドライン オペレーティング システムのプログラム名の後に指定され、オペレーティング システムからプログラムに渡されます。プログラムでコマンド ライン引数を使用するには、最初に main 関数の完全な宣言を理解する必要があります。これは以前は引数を受け入れませんでした。実際、main は実際には 2 つの引数を受け入れることができます。1 つの引数はコマンド ライン引数の数であり、もう 1 つの引数はすべてのコマンド ライン引数の完全なリストです。

argcp: main からのプログラムの変更されていない argc 変数へのポインター。戻ると、argcp が指す値が更新されます。これは、glutInit が GLUT ライブラリ用のコマンド ライン オプションを抽出するためです。argv: main からのプログラムの未変更の argv 変数。argcp と同様に、argv のデータは更新されます。これは、glutInit が GLUT ライブラリによって理解されるコマンド ライン オプションを抽出するためです。

glutInit はコマンド ライン オプションも処理しますが、特定のオプションの解析はウィンドウ システムに依存します。

于 2014-05-11T16:42:20.743 に答える
0

もう 1 つのシナリオは、UNIX main()がコマンド ライン引数を受け入れる場合であり、GLUT によって「パイプ」される必要はありません。

この場合、「カスタム」GLUT 初期化変数を内部のどこかで宣言して初期化する必要がありますmain()

int foo = 1;
char * bar[1] = {" "};
glutInit(&foo, bar);
于 2016-04-29T23:31:09.853 に答える