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'とは全く別の変数になります。また、 'options'がブロックの終わりまでに破壊されることを確実にします。 – jasonharper