Ich lese die folgenden sample code und ich bemerkte die Verwendung von geschweiften Klammern ohne Anweisung innerhalb loop()
:Arduino Geschweifte Klammern ohne Angabe
// 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;
}
}
rechts unten // Connect
dort die geschweifte Klammer in Frage. Ich nehme an, dass geschweifte Klammern verwendet werden, um Code innerhalb einer if-Anweisung, einer Schleife, eines Funktionsblocks usw. zu kapseln. Was bedeuten die geschweiften Klammern, die im Beispielcode verwendet werden? Ich habe versucht, die geschweiften geschweiften Klammern zu entfernen und die Skizze würde gut kompilieren. Was ist der Unterschied oder Zweck dieser geschweiften Klammern?
Es begrenzt den Geltungsbereich von lokalen Variablen ('options' in diesem Fall) auf nur den Block. Die 'Optionen' werden hier zu einer völlig separaten Variable von allen anderen' Optionen' innerhalb der Funktion. Es stellt auch sicher, dass "Optionen" bis zum Ende der Blockierung zerstört werden, anstatt vielleicht bis zum Ende der gesamten Funktion zu verweilen. – jasonharper