私はaircrack-ngのソースコードを読んでいて、structのさまざまな使用法に気づきました。例えば:
構造体オプション{...}opt;
typedefstruct{...}投票;
構造体の一般的な形式は
struct var {...};
また
typedef struct var {...} foo;
目的は何optですか?また、voteなぜタイプが定義されていないのですか?
typedefタイプエイリアスを作成します。と:
typedef struct { /* ... */ } vote;
エイリアスである匿名構造を作成しますvote。
struct option { /* ... */ } opt;
型と型struct optionの変数を宣言します。optstruct option
Cでは、変数を作成する方法は次のとおりです。
<type> <variable-name>;
これは次のようなもので明らかです:
int foo;
あまり明白ではありませんが、それはとまったく同じです
struct option {...} opt;
タイプはstruct option {...}、で、変数名は。ですopt。
したがって、この行optは、すべてのメンバーが記述された構造体である、という名前の変数を作成するだけです。
その行の後に、構造も記述したoptionので、構造のメンバーを再記述せずにその名前を再利用できます。
{
/* make structure, and variable opt */
struct option { int alpha; int beta; } opt;
/* Use the structure previously defined */
struct option second_opt;
}
structタイプ定義は、特に名前structが非常に長く、名前を短い名前に変更する場合に、名前のエイリアスを提供します。
あなたが持っていると言う
struct very_large_screen_metrics_info{};
後で名前を変更できます:
typedef struct very_large_screen_metrics_info screen_info;
定義で起こったstructことは、型定義が構造定義とともに提供されるということです。したがって、この例の命名規則は完全に有効であり、通常の命名規則に代わるものです。タイプはあなたが期待するようoptであり、vote