int main()
{
typedef struct a
{
static int w;
char *p;
} a;
}
それはerror:expected specifier-qualifier-list before 'static'
を与えるコンパイル上のuは、このエラーが何を意味するのか、それを削除する方法を教えてくださいだろうか?コンパイラエラー:「予期さ指定子修飾子リスト」
int main()
{
typedef struct a
{
static int w;
char *p;
} a;
}
それはerror:expected specifier-qualifier-list before 'static'
を与えるコンパイル上のuは、このエラーが何を意味するのか、それを削除する方法を教えてくださいだろうか?コンパイラエラー:「予期さ指定子修飾子リスト」
ローカルクラスは、C++で静的データメンバーを持つことはできません。
は、標準(段落9.8.4)あなたが知っていない可能性は低い場合にはA local class shall not have static data members.
を引用すると、ローカルクラスは、関数のスコープで定義されたクラス、構造体、または共用です。
9.8.1
A class can be defined within a function definition; such a class is called a local class.
static
ストレージクラスなので、適切typedef
には適用されません。それはregister
とconst
と同じ行に沿っています。
static
が働いても、w
はどのように静的で、p
は静的ではありませんか?
しかしこれは動作します:
int main()
{
typedef struct a
{
int w;
char *p;
} a;
static a a0;
}
はい、でも何Cについては? –
@Shashi Bhushan:Cは静的データメンバーをサポートしていません。 –
@Shashi: 'main()'の宣言がCでないため、あなたの質問からCタグを削除しました。 –