关于c/C++混编报错存在疑问,不是很理解
rtt studio 4.0.3 工程已打开支持C++
在.c和.cpp都使用的.h中使用#ifdef __cplusplus
.h如下:
`#ifndef APPLICATIONSRING_H
define APPLICATIONSRING_H
ifdef __cplusplus
extern “C” {
endif
include “stdio.h”
include “stdlib.h”
define ADC_MAX_NUM 1000//数组的个数,存放触发后的数据
uint16_t ADC_Values[ADC_MAX_NUM]={0};
/省略代码/
ifdef __cplusplus
}
endif
endif / APPLICATIONSRING_H /` 在.c和.cpp都使用了定义的数组(直接#inlcude 这个头文件)。但是编译器报错如下: ./applications/main.o:(.bss.ADC_Values+0x0): multiple definition ofADC_Values’ ./rt-thread/components/qmod/cap_server/src/capserver.o:(.bss.ADC_Values+0x0): first defined here`
不是很理解 明明使用了#ifdef __cplusplus 为何还是存在问题?
更多回帖