2017-12-06 9 views
1

'char a [10];'が1つのファイルで定義されていて、 'extern char * a;'が別のファイルで宣言されていても機能しません。それが正しいか? 'extern char * a;'宣言は配列を宣言しないため、 は実際の定義と一致しません。「extern」を正しく宣言するにはどうすればよいですか?

+0

これは、あなたが識別しなかった言語によって異なります。 –

+0

「これはうまくいかない」という証拠はありますか? –

+0

あなたの質問を編集して、より詳細な情報を含めることができますか?使用している言語;あなたが今持っているものの[mcve]。正確な結果やエラーメッセージが表示されます。あなたが期待していた、または期待していた結果は? – IMSoP

答えて

1

修正 - グローバルシンボルのすべての宣言は、そのシンボルの定義と互換性がなければなりません。そうしないと、恐ろしい未定義ビヘイビアが発生します。 extern char *a;char a[10];と互換性がありません。

代わりにchar a[10];と互換性のあるextern char a[10];またはextern char a[];のいずれかを使用できます。

関連する問題