2つの要素を持つ構造体を作成し、main関数外の構造体要素の1つに値を代入しようとしました。コンパイル中にエラーが出ます。構造体の外側に値を代入する
#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;
}
私は宣言の後に値を割り当てています。なぜこのコードはエラーを出すのですか?あなたはファイルスコープでmain()
、すなわち外部のランタイム実行を、必要とする声明を持つことができません
エラーメッセージ
error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘.’ token
機能の外に割り当てを行うことはできません。実行可能コードは、関数内にのみ存在できます。 –
'struct node sr = {.b = 48};のようなイニシャライザとして割り当てます。 – BLUEPIXY