저는 LED 보드를 구동하는 라이브러리입니다. 파일extern없이 헤더에 정의 된 사용 변수 C++
led.cpp
#include "led.h"
//function implementation
led.h font.h led.cpp, led.h을 포함
#ifndef led_h
#define led_h
#include "font1.h"
class LED{
//some code, which uses char defined in font.h
}
font.h
#ifndef font_h
#define font_h
//Letter mapping to pixel
char CH200[] PROGMEM = "11111111";
char CH201[] PROGMEM = "11000011";
char CH202[] PROGMEM = "11111111";
char CH203[] PROGMEM = "11111001";
char CH204[] PROGMEM = "11000111";
char CH205[] PROGMEM = "11111111";
char CH206[] PROGMEM = "11111111";
char CH207[] PROGMEM = "11111111";
// many many more definition here
#endif
이제 그 프로그램에 내가
#include "led.h"
을했다, 그래서 다른 프로그램에서이 라이브러리를 사용하고자하지만이 같은 컴파일하는 경우, 그것은 그 CH20X의 문자의 여러 정의에 대해 불평. 이 문제를 해결하는 방법에 대한 조언이 필요하십니까?
const
감사합니다 사용합니다. 그것은 작동합니다! –왜 작동합니까? 설명 없습니까? – dcousens
@Daniel : 그것은 연결을 변경하여 작동합니다. 링키지 (예 :'extern')를 변경하는 다른 방법이 있지만 최적화를 방지하거나 '크기'정보를 잃지 않습니다. –