C++ Arduino IDE在单独的文件中初始化字符[]
我有一个大字符[],它包含一个位图字体,我用它在OLED显示器上显示数字。数组的初始化在我的cpp文件的开头,这使文件更难读取。我不得不相信,有一种方法可以在一个单独的文件中定义这个数组,但我没有办法 我有一个Arduino文件,我将ino文件大部分保留为空白,以减少Arduino软件被混淆的可能性:C++ Arduino IDE在单独的文件中初始化字符[],c++,arduino,C++,Arduino,我有一个大字符[],它包含一个位图字体,我用它在OLED显示器上显示数字。数组的初始化在我的cpp文件的开头,这使文件更难读取。我不得不相信,有一种方法可以在一个单独的文件中定义这个数组,但我没有办法 我有一个Arduino文件,我将ino文件大部分保留为空白,以减少Arduino软件被混淆的可能性: #include <SPI.h> #include <Adafruit_SSD1306ms.h> #include <Wire.h> #include <
#include <SPI.h>
#include <Adafruit_SSD1306ms.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <RFduinoBLE.h>
当代码都在ino文件中时,它工作得很好,但是出于可读性原因,我不希望将大字体位图char[]与代码放在同一个文件中
我相信我可以用这种字体创建一个库,但这是解决这个问题的最佳方法吗?在之前尝试添加
extern
const unsigned char font[];
在oled.cpp中
如果没有extern
,编译器将尝试为变量定义和分配缓冲区。
然后,由于不知道应该为不完整的类型分配多少内存,它将失败。请尝试在之前添加
extern
const unsigned char font[];
在oled.cpp中
如果没有extern
,编译器将尝试为变量定义和分配缓冲区。
然后,由于不知道应该为不完整的类型分配多少内存,它将失败。put
extern const unsigned char font[];
在头文件中,从两个位置包含它,而不是将它放在使用它的任何地方。这将防止声明和定义之间的不一致。put
extern const unsigned char font[];
在头文件中,从两个位置包含它,而不是将它放在使用它的任何地方。这将防止声明和定义之间出现不一致。好吧,错误是显而易见的。现在去修理它吧。您需要更具体一些。为什么会出现第一个错误?我不明白为什么oled.cpp在被定义为extern并初始化时在作用域中没有font[],因为
font[]
的定义在另一个翻译单元(类似于文件)中,因此编译器(不是链接器)不知道定义e,ists。好吧,错误很明显。现在去修理它吧。您需要更具体一些。为什么会出现第一个错误?我不明白为什么oled.cpp在定义为extern并初始化时在作用域中没有font[],因为font[]
的定义在另一个翻译单元(类似于文件)中,因此编译器(不是链接器)不知道定义e,ists。就是这样!我以为我已经试过了,但显然没有。我滚动的手指谢谢你,就这样!我以为我已经试过了,但显然没有。我滚动的手指谢谢你。
extern const unsigned char font[];