【发布时间】:2017-07-19 19:39:32
【问题描述】:
我创建了一个包含两个元素的结构,并尝试为 main 函数之外的一个结构元素赋值。但是我在编译时遇到了错误。
#include <stdio.h>
#include <stdlib.h>
struct node{
char a;
int b;
};
struct node sr;
sr.b = 48;
int main(){
printf("Value:%d",sr.b);
return 0;
}
我在声明后赋值。为什么这段代码会出错。
错误信息
error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘.’ token
【问题讨论】:
-
您不能在函数之外进行任何分配。可执行代码只能驻留在函数内部。
-
像
struct node sr = { .b = 48 };这样分配为初始化器
标签: c gcc structure variable-assignment