externを使用してC++でAdaにインターフェイスしようとしています。これら2つの実装の違いは何ですか?
実装A
namespace Ada
{
extern "C"
{
int getNumber();
int index;
int value;
}
}
実装B
namespace Ada
{
extern "C"
{
int getNumber();
}
extern "C" int index;
extern "C" int value;
}
どちらの実装も問題なくコンパイルされます。しかし、Impl-Aはリンクに失敗し、インデックスと値の複数定義エラーが発生します。私は違いを理解しようとしているだけです。