ISO C11标准(我只能访问草案版本,n1570.pdf)在6.2.1.8中说明(C99标准中没有这样的段落):
作为一种特殊情况,类型名称(不是标识符的声明)被认为具有范围,该范围在类型名称中的地点之后开始,其中省略的标识符将被显示,而不会被省略.
我正在寻找以下任何解释:
1)部分(6.2.1)的名称是"标识符的范围".本段的措辞对我来说不清楚:'类型名称范围'是一种范围,类似于例如块范围,文件范围等?或者它是类型名称本身的范围(在这种情况下,另一个问题是没有名称的对象如何具有范围以及这种范围的可能用途).
2)这个定义在哪里重要?更具体地说,如果更改为在相应的类型名称完成后立即开始类型名称的范围,那会有什么影响?可以跟随抽象声明符(=类型名称)中省略的标识符的唯一标记是一些括号和一个参数名称或数组维度列表(内部有表达式),这两个标记都不能引用所讨论的类型名称,因为它有没有要引用的标识符.为什么不等到声明者完成?
F4xx系列芯片的STM32手册表示应用程序将TXFFLSH寄存器中的位写入OTG_FS_GRSTCTL以刷新TxFIFO.作为注释,它提到......应用程序必须在检查核心既不写入TxFIFO也不读取TxFIFO之后写入该位.作为一种方法,它建议确保NAK有效中断被设置(我认为这意味着寄存器中的GINAKEFF位OTG_FS_GINTSTS)以确保内核不读取FIFO,并检查AHBIDL(AHB空闲)位OTG_FS_GRSTCTL被设置为保证FIFO中没有任何内容.STM提供的(糟糕的)USB OTG库忽略了这两种检查,而免费libopencm3库只检查AHB空闲位.我的问题如下:
在执行上述检查和写入TXFFLSH位之前,本手册未建议禁用USB OTG内核.这是否可以让核心可能在执行检查和写入TXFFLSH?之间开始使用FIFO .
"NAK有效"位仅保证不会从非周期性端点的TxFIFO读取数据.除非核心被禁用,否则核心是否仍然可以将FIFO用于等时端点?
我知道这些都是"挑剔"类型的问题,但我正在研究的项目应该会产生一个非常可靠的硬件,客户多年来无法检查设备,因此这些微妙之处很重要(是的,我们启用了看门狗)等等,但我们需要核心在大多数时间没有重置的情况下工作.