如何为C中的Struct属性赋值

时间:2016-10-16 04:33:22

标签: c struct properties

C新手,这是我创建的一个简单的结构。

g = g * 3;

我尝试分配汽车的x和y属性:

typedef struct car {
    float x, y;             
    unsigned char width, height;    
} Cars;

错误

  

错误:预期' =',',',&#39 ;;',' asm'或' 属性'之前'。'令牌

有什么想法吗?请帮忙!

3 个答案:

答案 0 :(得分:2)

我猜你有线

Cars sedan;
sedan.x = 20;
sedan.y = 10;

在一个函数之外。你不能使用

sedan.x = 20;
sedan.y = 10;

在一个函数之外。将这些行移到函数中。

另一个选择是初始化struct的成员使用(Thanks @JonathanLeffler)

Car sedan = { .x = 20, .y = 10 };

答案 1 :(得分:0)

也许你可以尝试在一行中定义一个struct成员。

typedef struct car {
    float x;
    float y;
    unsigned char width;
    unsigned char height;    
} Cars;

答案 2 :(得分:0)

#include <stdio.h>
#include <string.h>

typedef struct car {
    float x, y;
    unsigned char width, height;
} Cars;

int main( ) {
    Cars sedan;
    sedan.x = 20;
    sedan.y = 10;

    printf( "value one : %f\n", sedan.x);
    printf( "value two : %f\n", sedan.y);
}

输出

value one : 20.000000
value two : 10.000000

您还可以按如下方式对结构进行编码:)

struct car {
    float x, y;
    unsigned char width, height;
};

int main( ) {

    struct car sedan;  /* Declare sedan of type car */

    sedan.x = 20;
    sedan.y = 10;

    printf( "value one : %f\n", sedan.x);
    printf( "value two : %f\n", sedan.y);
}