C++プログラムのメイン関数でacヘッダーで定義された列挙を使用するのに問題があります。コードは次のようになります。
main.cpp:
extern "C"
{
#include my_c_header.h
}
//...
int main(void)
{
my_c_function(channel_1);
return 0;
}
my_c_header.h:
typedef enum channel
{
channel_0,
channel_1
};
void my_c_function(channel ch)
{
//...
}
コンパイラは、シンボル'channel_1'を解決できないと文句を言っています。コンパイラはtms470ですが、問題がこのコンパイラに固有のものなのか、cとc++のこの混合に何か問題があるのかはわかりません。