默认的 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 的末尾定义的,实际上,构造函数是用三个参数调用的。