默认的 Arduino TwoWire 构造函数在哪里定义?
Where is the default Arduino TwoWire constructor defined?
我对 TwoWire Arduino 库中的某些内容感到有点困惑。
Wire.h 和 Wire.cpp 文件定义了一个需要三个参数的构造函数:
TwoWire::TwoWire(SERCOM * s, uint8_t pinSDA, uint8_t pinSCL)
.
然而 Wire.h 文件实例化了一个没有参数的全局实例:
extern TwoWire Wire;
在文件末尾。
我的印象是,一旦您为 class 显式定义构造函数,C++ 编译器将不会自动创建任何默认构造函数。
那么,无参数的TwoWire构造函数在哪里定义的?
还有,私有变量sercom
、_uc_pinSDA
、_uc_pinSCL
是如何初始化的?
感谢@Juraj。
Wire.h中的extern声明只表示Wire在某处定义,并没有定义它。
它实际上是在 Wire.cpp 的末尾定义的,实际上,构造函数是用三个参数调用的。
我对 TwoWire Arduino 库中的某些内容感到有点困惑。
Wire.h 和 Wire.cpp 文件定义了一个需要三个参数的构造函数:
TwoWire::TwoWire(SERCOM * s, uint8_t pinSDA, uint8_t pinSCL)
.
然而 Wire.h 文件实例化了一个没有参数的全局实例:
extern TwoWire Wire;
在文件末尾。
我的印象是,一旦您为 class 显式定义构造函数,C++ 编译器将不会自动创建任何默认构造函数。
那么,无参数的TwoWire构造函数在哪里定义的?
还有,私有变量sercom
、_uc_pinSDA
、_uc_pinSCL
是如何初始化的?
感谢@Juraj。
Wire.h中的extern声明只表示Wire在某处定义,并没有定义它。
它实际上是在 Wire.cpp 的末尾定义的,实际上,构造函数是用三个参数调用的。