1
我閱讀下列sample code,我發現裏面loop()
沒有任何語句中使用大括號:Arduino的大括號沒有聲明
// Start new MQTT connection
MqttClient::ConnectResult connectResult;
// Connect
{
MQTTPacket_connectData options = MQTTPacket_connectData_initializer;
options.MQTTVersion = 4;
options.clientID.cstring = (char*)MQTT_ID;
options.cleansession = true;
options.keepAliveInterval = 15; // 15 seconds
MqttClient::Error::type rc = mqtt->connect(options, connectResult);
if (rc != MqttClient::Error::SUCCESS) {
LOG_PRINTFLN("Connection error: %i", rc);
return;
}
}
正下方// Connect
有問題的大括號。我知道,花括號用於將代碼封裝在if語句,循環,功能塊等內。示例代碼中使用的花括號的含義是什麼?我嘗試刪除有問題的花括號,草圖將編譯得很好。那麼這些大括號的區別或目的是什麼?
它將任何局部變量(在本例中爲'options')的範圍限制爲塊。這裏的'options'成爲函數內其他'options'的一個完全獨立的變量。它還可以確保'選項'在塊結束時被破壞,而不是在整個函數結束前四處徘徊。 – jasonharper