使用数组并集初始化结构

火鸡

我注意到有很多关于这个主题的帖子,但我似乎无法指出任何有帮助的内容。

我定义了以下代码:

typedef struct
{
    float re;
    float im;
} MyComplex;

typedef struct
{
    float rf;
    union
    {
        float     noise[4];
        MyComplex iq[4];
    };
} RfTable_t;

RfTable_t Noise[2] = 
{
    { 1.2f, .noise=0.f },
    { 2.1f, .noise=0.f };
};

**EDIT - Add function Test**

void Test()
{
    Noise[0].rf = 2.1f;
    Noise[0].noise[0] = 3.2f;
}

我正在尝试静态定义全局变量Noise我收到以下错误:

   expected primary expression before '{' token
   expected primary expression before '{' token
   expected primary expression before '}' before '{' token
   expected primary expression before '}' before '{' token
   expected primary expression before ',' or ';' before '{' token
   expected declaration before '}' token
阿贝连基

我做了最小的更改以使其编译:

#include <stdio.h>

typedef struct
{
    float re;
    float im;
} MyComplex;

typedef struct
{
    float rf;
    union
    {
        float     noise[4];
        MyComplex iq[4];
    };
} RfTable_t;

RfTable_t Noise[2] = 
{
    { 1.2f, .noise={0.f} },  // Initialize NOISE with {0.f} instead of 0.f.
    { 2.1f, .noise={0.f} }   // Remove extra semi-colon.
};


int main(void) {
    return 0;
}

干净编译:

https://ideone.com/pvI9Ci

简而言之:
noise是一个数组。
要初始化它,您必须使用数组初始值设定项语法:
{ value, value, value }

您的 值周围没有括号0.f

此外,您还有一个额外的分号。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档