そして私はUbuntu11.10を使用していますが、このプログラムをコンパイルすると、次のエラーが発生します。エラー:「a」はタイプに名前を付けていません
コンパイラーは、このメッセージで、構造体メンバーへの割り当てはグローバルスコープでは発生しないことを通知します。a
どちらかの書き込みを初期化する場合
struct A a = {6};
または新しい構文を使用する
struct A a = {.x = 6};
または、プログラム開始後の早い段階(つまり、メインの開始時)に初期化割り当てを実行します。
更新/編集:
ところで:これはGLUTやその他のヘッダーとは何の関係もありません。これは言語仕様のものです。
更新/編集2
複雑なパラメータをコールバック関数に渡す方法を知りたいですか?
GLUTはユーザー定義のコールバックデータを指定できないため、GLUTコールバックの場合は困難になります。ffcallライブラリを使用して、その場でクロージャを作成し、それをGLUTに渡すことができます。ただし、次の点を考慮する必要があります。この壁にぶつかったらすぐに、GLUTを捨てる時が来ました。GLUTはOpenGL開発の要件ではなく、複雑なアプリケーションのベースとして意図されたものではありません。したがって、その場合は使用しないでください。