C/C++ 警告:BDADDR_ANY 蓝牙库的临时地址

2023-12-11

我在 Ubuntu 下使用 g++ 和使用蓝牙库的 C/C++ 程序的编译过程时遇到一些问题。

如果我使用 gcc,它工作正常,没有任何警告;相反,如果我使用 g++ 我会收到此警告:

警告:正在获取临时地址

即使程序编译良好并且可以工作。

报告错误涉及的行是:

        bdaddr_t *inquiry(){
       // do some stuff.. 
    bacpy(&result[mote++], BDADDR_ANY);
    return result;
}
//...
void zeemote(){
while (bacmp(bdaddr, BDADDR_ANY)){
/..
}
}

在这两种情况下,都涉及 BDADDR_ANY。

我该如何解决这个警告?

BDADDR_ANY 在 bluetooth.h 中定义如下:

/* BD Address */
typedef struct {
    uint8_t b[6];
} __attribute__((packed)) bdaddr_t;

#define BDADDR_ANY   (&(bdaddr_t) {{0, 0, 0, 0, 0, 0}})

(&(bdaddr_t) {{0, 0, 0, 0, 0, 0}})

构造一个临时对象并使用其地址。这在 C++ 中是不允许的。

您可以通过创建命名临时变量并使用来解决此问题bacpy and bacmp on it:

bdaddr_t tmp = { };

bacpy(&result[mote++], &tmp);

and

while (bacmp(bdaddr, &tmp)) {
    //
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C/C++ 警告:BDADDR_ANY 蓝牙库的临时地址 的相关文章

随机推荐

  • 为什么释放堆内存比分配它慢得多?

    这是一个经验假设 分配比解除分配更快 这也是one我猜想 为什么基于堆的存储 比如STL容器或其他 选择不将当前未使用的内存返回给系统 这就是为什么缩小以适合成语诞生 当然 我们不应该混淆 heap 记忆与 heap 类似的数据结构 So
  • 有人可以向我解释 git diff 在这里看到什么区别吗?

    我在 Windows 7 上通过 msysgit 使用 git 最近让我非常痛苦的一个问题是 一旦我切换到某些分支 git 就会认为某些文件已被更改 然后我无能为力让它停止认为这些文件已更改 在我的案例中重现的步骤 可能与每个人都不相关 如
  • 如何更改 JTextPane 中特定单词的颜色?

    如何更改特定单词的颜色JTextPane就在用户打字时 我应该覆盖吗JTextPane paintComponent method 不 您不应该重写 PaintComponent 方法 相反 你应该使用StyledDocument 您还应该
  • Chrome 网上应用店扩展应用程序内购买 INTERNAL_SERVER_ERROR

    Chrome 扩展程序中的 Chrome InApp 购买流程取得了部分成功 我已包含 buy js 文件并实现了此处 Chrome 演练中列出的流程 https developer chrome com webstore payments
  • 在 GNU C 内联汇编中使用 LDRD?使用什么限制?

    TL DR我在玩 easm 并烧伤了我的手指 我的限制有意义吗 当我玩弄内存时 我想测试在 ARM CPU 皮质 A9 上手动读取一些内存 免责声明 这里的学习目的 当然我同意依赖优化器在 99 999 的情况下都是正确的做法 但我真的很想
  • Tensorflow 安装错误:__ 在此平台上不支持轮子

    我正在尝试在我的电脑上安装tensorflow 但我不断收到错误 我在网上看到了很多关于tensorflow安装错误的帖子 但我找到的只是解决方案 说python的版本不兼容 但是 我使用的是 python 3 8 并且使用的是tensor
  • 我可以在c#中创建一个新对象变量的名称吗?

    例如 car Audi new car 是否有可能是这样的 string name Microsoft VisualBasic Interaction InputBox Name of new car Add car car name ne
  • 将.key和.pem文件导入到jks文件并在Java/Spring中使用

    我从服务团队获得了以下密钥 证书 用于通过 SSL 调用他们的 API 我通过curl 命令对其进行了验证 1 QA test key 2 QA test pem 卷曲命令 curl key QA test key cert QA test
  • 基本矩阵的分解:验证 R 和 T 的四种可能解决方案

    我想使用 OpenCV 进行一些运动结构 到目前为止 我已经有了基本矩阵和基本矩阵 有了基本矩阵 我正在做 SVD 来获得 R 和 T 我的问题是 我有 2 个可能的 R 解决方案和 2 个可能的 T 解决方案 这导致整体姿势有 4 个解决
  • 删除 R 中过于常见的单词(出现在超过 80% 的文档中)

    我正在使用 tm 包来创建语料库 我已经完成了大部分预处理步骤 剩下的事情就是删除过于常见的单词 在超过 80 的文档中出现的术语 有人能帮我解决这个问题吗 dsc lt Corpus dd dsc lt tm map dsc stripW
  • PHP:在指定的时间内回显消息

    我想显示一个字符串 您的状态已发布 大约 3 秒左右 然后我希望它消失 截至目前 我有一个新闻提要 用户可以在其中发布消息 并且在发布消息后回显该文本字符串 直到重新输入 URL 有没有人有什么建议 if POST submit body
  • Matlab - 2次方矩阵

    In Matlab 我输入了以下命令 gt gt a 1 2 3 4 a 1 2 3 4 当我尝试命令时a 2 我得到以下内容 gt gt a 2 ans 7 10 15 22 我实际上期望得到 ans 1 4 9 16 换句话说 我期望将
  • 如何将模板变量传递给模板辅助函数以保留上下文?

    我可能使用了错误的词语来描述我的问题 所以这是我正在使用的 简化的 代码 我很高兴学习更好的方法来做到这一点 但我目前正在尝试做的是通过 assigneeId 到名为的模板辅助函数agentIs 问题是我找不到传递该值的正确方法
  • 左/右透明剪切箭头

    我知道之前已经回答过这个问题 但是那是针对 div 的底部 我无法弄清楚如何为 div 的左侧和右侧执行此操作 我试图达到与此相同的效果 BODY background url http farm6 staticflickr com 550
  • 如何检测DIV的维度发生变化?

    我有以下示例 html 其中有一个宽度为 100 的 DIV 它包含一些元素 在执行窗口大小调整时 内部元素可能会重新定位 并且 div 的尺寸可能会发生变化 我问是否可以hook div 的尺寸变化事件 以及如何做到这一点 我目前将回调函
  • QThread 执行冻结了我的 GUI

    我是多线程编程的新手 我用 Qt 编写了这个简单的多线程程序 但是当我运行这个程序时 它冻结了我的 GUI 当我在窗口中单击时 它会响应说您的程序没有响应 这是我的小部件类 我的线程开始计算一个整数 并在该数字可被 1000 整除时发出它
  • 客户端布局是否使一切都成为客户端?如果是这样,如何在保持其服务器组件的同时向其添加客户端交互性?

    我试图了解如何使用服务器组件处理模式打开 关闭 以前 对于客户端组件 我只需将状态提升到我的Layout export default function Layout children const showPopup setShowPopu
  • 工厂方法反if实现

    我正在我的 C 项目中应用工厂设计模式 下面您可以看到我是如何做的 我尝试通过遵循 反 if 活动来改进我的代码 因此想删除我所拥有的 if 语句 知道我该怎么做吗 typedef std map
  • 将 Swift 字符串编码为转义的 unicode?

    API数据字段仅支持ASCII编码 但我需要支持Unicode 表情符号 外来字符等 我想将用户的文本输入编码为转义的 unicode 字符串 let textContainingUnicode Let s go in the And so
  • C/C++ 警告:BDADDR_ANY 蓝牙库的临时地址

    我在 Ubuntu 下使用 g 和使用蓝牙库的 C C 程序的编译过程时遇到一些问题 如果我使用 gcc 它工作正常 没有任何警告 相反 如果我使用 g 我会收到此警告 警告 正在获取临时地址 即使程序编译良好并且可以工作 报告错误涉及的行