コードは次のとおりです。
A_output(message)
struct msg message;
{
}
私はこれまでこのような構文を見たことがありません。その構造体定義は何をしているのですか?これは、パラメータフィールドで「メッセージ」の「タイプ」を指定する別の方法ですか?それで、これと同じことですか?:
A_output(struct msg message)
{
}
この
A_output(message)
struct msg message;
{
}
関数が戻り値の型を宣言していないため、現在は許可されていない関数定義の古い構文です。初期のデフォルトでは、戻り値の型はでしたint
。
そのような関数の定義について
void A_output(message)
struct msg message;
{
}
その場合、それは識別子リストを持つ有効な関数定義です。
C標準から(6.9.1関数定義)
6宣言者が識別子リストを含む場合、宣言リスト内の各宣言には少なくとも1つの宣言者が必要であり、それらの宣言者は識別子リストからの識別子のみを宣言し、識別子リスト内のすべての識別子を宣言するものとします。typedef名として宣言された識別子は、パラメータとして再宣言されません。宣言リスト内の宣言には、レジスターおよび初期化以外のストレージクラス指定子を含めることはできません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加