stm32:error: #268: declaration may not appear after executable statement in block

2023-11-12

今天写中断函数时报错:
error: #268: declaration may not appear after executable statement in block
谷歌翻译直译过来就是
声明可能不会出现在块中的可执行语句之后
这里写图片描述

其实语句没有什么问题,但是
EXTI_InitTypeDef EXTI_Struct;
这句话的位置有错误,应该放在大括号后面
这里写图片描述

32的库中,结构体大部分都加的typedef,意味着要重新声明,可以理解为EXTI_InitTypeDef可以重新定义变量,然后通过 “.” 访问结构体中的内容。类似于typedef unsigned char uchar ;uchar= ** ;
C语言规定变量声明必须在函数开头,也就是大括号之后。
EXTI_InitTypeDef EXTI_Struct; 这句话相当于在声明变量,所以放在函数中会报错。
MDK5默认的还是C89标准,限定了声明变量的位置。在C99标准中则没有此限制,如果想开启C99标准则可通过打开魔术棒中的C/C++面板,勾选“C99Mode”。

这里写图片描述

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

stm32:error: #268: declaration may not appear after executable statement in block 的相关文章

  • 如何防止无名结构\联合?

    我正在构建一个具有矩阵数据联合的类 但是 只有当我没有结构 联合的名称时 我才能对其进行编译 但是 如果警告级别更高 视觉工作室为四级 我会发出警告说 warning C4201 nonstandard extension used nam
  • 在结构体中动态分配结构体

    我正在动态分配一个具有不同结构作为成员的结构 struct a other members struct b struct b基本上持有一个指向另一个的指针struct b 所以想到struct b作为链接列表 如果我动态分配struct
  • 在 C 语言中,如何将结构体的成员声明为易失性的?

    如何将结构体的特定成员声明为易失性 与非完全相同struct fields include
  • 将结构指针转换为另一个结构

    此代码片段打印该值5 我不明白为什么 include
  • 当端点和 PMA 地址均更改时,CubeMX 生成的 USB HID 设备发送错误数据

    我正在调试我正在创建的复合设备的问题 并在新生成的仅 CubeMX 代码中重新创建了该问题 以使其更容易解决 我添加了少量代码main 让我发送 USB HID 鼠标点击 并在按下蓝色按钮时使 LED 闪烁 uint8 t click re
  • Pickling 定义为具有 PyObject* 成员的 C 结构的 Python 扩展类型

    我正在通过 Python 运行 C 代码 并且想要 pickle 扩展类型 因此 我有一个 C 结构体 py db manager 其中包含指向数据库对象和对象管理器对象 均用 C 编写 的指针 我用 python 类型对象 t db ma
  • 结构体的指针运算

    给定一个包含 1 个 double 和 3 个 int 变量 总共 4 个变量 的结构体定义 如果 p 是指向该结构体的指针 其值为 0x1000 那么 p 的值为多少 这不是作业问题 所以不用担心 我只是想准备考试 但我无法解决这个练习题
  • 如何将Matlab命令的输出重定向到文件? [复制]

    这个问题在这里已经有答案了 我想将 Matlab 命令的输出重定向或复制到文件中 我怎样才能做到这一点 就我而言 我想使用 UNIX 工具比较两个大型结构diff 示例 我可以在 Matlab 中执行此操作 gt gt s1 s1 a 32
  • 数组如何在结构体中工作?

    如果我有例如 typedef struct node int numbers 5 node 每当我创建这样一个结构的实例时 都会在堆栈中为数组本身分配内存 在我们的例子中 20 个字节分配 5 个整数 将整数视为 32 位 并且数字将是指向
  • 移动数组中的元素

    我需要一点帮助 我想将数组中的元素向上移动一个元素 以便新位置 1 包含位置 1 中的旧值 new 2 包含 old 1 依此类推 旧的最后一个值被丢弃 第一个位置的新值是我每秒给出的新值 我使用大小为 10 的数组 uint32 t TE
  • 多个结构体,需要在方法中访问相同的字段

    我目前尝试用 C 语言编写一些简单的控制台游戏来娱乐 为此 我需要能够在 嗯 C 中打印类似窗口的结构 我想使用通用渲染方法 让我们称之为frame render 渲染所有不同的 ui 元素 现在的问题是 如何解决这个问题 给定场景 The
  • 如何可视化内存中带有位域的 C 结构体的布局?

    我正在使用包括位字段的 C 结构 如下所示 struct beeper general t uint1 t enable 1 uint32 t 7 enum2 t loudness 2 uint32 t 22 enum2 t status
  • 为什么Java不支持结构体? (只是出于好奇)

    我知道您可以使用公共字段或其他一些解决方法 或者也许你根本不需要它们 但只是出于好奇为什么 Sun 没有考虑结构 这是一个link http www oracle com technetwork java simple 142616 htm
  • C 标准中 char 数组结构成员的对齐

    假设我想读 写 tar 文件头 考虑标准 C C89 C99 或 C11 关于填充 字符数组在结构中是否有任何特殊处理 编译器可以向这样的结构添加填充吗 struct header char name 100 char mode 8 cha
  • 在 C 或 C++ 中返回结构是否安全?

    我的理解是不应该这样做 但我相信我已经看到过这样做的示例 注意代码不一定在语法上正确 但想法就在那里 typedef struct int a b mystruct 然后这是一个函数 mystruct func int c int d my
  • “struct X typedef”与“typedef struct X”的含义是什么?

    我在现有代码库中有以下 工作 代码 在 C 和 C 之间共享的包含文件中使用 在 MSVC 2010 和 Windows DDK 上编译 struct X USHORT x typedef X PX And enum MY ENUM enu
  • 将结构体成员声明为 uint32_t 时的额外字节

    我在使用 stdint h 库中的 uint32 t 类型时遇到问题 如果我运行以下代码 在 Ubuntu linux 11 10 x86 64 g 版本 4 6 1 上 include stdint h include
  • GLSL 中的二阶函数?

    我正在寻找一种方法来使用一个函数作为 GLSL 中另一个函数的参数 在常规 C 中 可以通过传递函数指针作为函数参数来模拟它 似乎其他语言 如 HLSL 现在提供了处理高级构造 如高阶函数 的方法 或者可以使用以下命令来模拟它们巧妙利用 H
  • for 循环初始值设定项中的结构

    知道为什么 for 循环初始值设定项中的这个结构表达式在编译时会出现语法错误吗 在这种情况下 指向结构的指针工作正常 但 ofc 我需要如下所示的局部变量 感谢您的建议 type Request struct id int line byt
  • Python:结构体和数组与 ctypes 中的类似功能

    Python 提供了以下三个处理 C 类型以及如何处理它们的模块 struct https docs python org 3 library struct html对于 C 结构体 array https docs python org

随机推荐