Typedef结构的成员在c中是否为静态

Typedef structure's member being static or not in c

我觉得这个none意义不是吗?因为在从该变量创建实例之后。它将初始化整个变量,不会对成员有不同的行为并将初始化所有成员,不是吗?据我所知,静态变量是全局变量,但它们的使用仅限于指定的函数或源文件。

typedef struct
{
    const uint32_t mainpointer;
    static uint32_t currentpointer;    
    uint16_t num_el;    
    uint8_t num_byte;    
}arrayPushCirc_doublebuffer_instance;

void main(void)
{
arrayPushCirc_doublebuffer_instance struction;
function1(struction);
}

在 C 中,结构的数据成员可能没有存储 class 说明符。

所以这个数据成员的声明

static uint32_t currentpointer;

在 C 中无效。

根据 C 语法数据成员声明可能只有以下说明符

specifier-qualifier-list:
    type-specifier specifier-qualifier-listopt
    type-qualifier specifier-qualifier-listopt

另一方面,您可以使用存储 class 说明符 static 来声明文件范围或函数范围内的对象。

例如

#include <stdint.h>

typedef struct
{
    const uint32_t mainpointer;
    uint32_t currentpointer;    
    uint16_t num_el;    
    uint8_t num_byte;    
}arrayPushCirc_doublebuffer_instance;

static arrayPushCirc_doublebuffer_instance struction; 

int main( void )
{
    //...
}

注意根据C标准,不带参数的函数main应该声明为

int main( void )