首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Arduino Curly Braces不带语句

Arduino Curly Braces不带语句
EN

Stack Overflow用户
提问于 2017-08-04 22:52:24
回答 1查看 137关注 0票数 1

我正在阅读下面的sample code,我注意到在loop()中使用了没有任何语句的花括号

代码语言:javascript
复制
// 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语句、循环、函数块等中。示例代码中使用的花括号是什么意思?我试着去掉有问题的花括号,草图可以很好地编译。那么这些大括号的区别或用途是什么呢?

EN

回答 1

Stack Overflow用户

发布于 2017-08-04 23:05:05

花括号在基于C的语言中服务于多种用途(例如,您正在做的那样保存if块),但是这里的第一个和最后一个仅仅是定义了一个局部作用域。在这种情况下,可以毫不费力地删除它们,因为没有其他东西可以划分到不同的作用域。然而,如果你后面有更多的代码,就像你可能会做的那样,在这个局部作用域内定义的任何局部变量(例如options)对于这个局部作用域之外定义的东西都是不可见的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45509862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档