我在使用c ++程序的main函数中的ac头中定义的枚举时遇到了一些麻烦.代码类似于:
main.cpp中:
extern "C"
{
#include my_c_header.h
}
//...
int main(void)
{
my_c_function(channel_1);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
my_c_header.h:
typedef enum channel
{
channel_0,
channel_1
};
void my_c_function(channel ch)
{
//...
}
Run Code Online (Sandbox Code Playgroud)
编译器抱怨它无法解析符号'channel_1'.编译器是tms470,但我不知道这个编译器是否特有问题,或者c和c ++的混合是否有问题
这不是一个有效的typedef陈述,你错过了别名.
尝试
typedef enum
{
channel_0,
channel_1
} channel;
Run Code Online (Sandbox Code Playgroud)
(它实际上可能是合法的,但它不会将名称channel引入C编译器使用的搜索空间.)
| 归档时间: |
|
| 查看次数: |
561 次 |
| 最近记录: |