グローバル変数

基本的に変数は、if文や、for文、関数などブロック("{"と"}")で囲まれた範囲(これをスコープという)でのみ有効であり、
外からそこにアクセスすることはできないし、そのブロックを抜けると値も保持される保証は無い・・・。

グローバル変数は、そのモジュール内ならどこでも参照、代入が可能で値も保持される変数である・・・。

グローバル変数に関数からアクセスするので、global_variable_access_funcという関数を宣言・・・。

グローバル変数global_variable自体は、このようにmain関数の前に変数を宣言するだけ・・・。

実際にmainで行う処理は、

まず、global_variableに10を代入・・・。

global_variableの値を出力・・・。まあ、当然10なわけだが・・・。

次にglobal_variable_access_funcを呼ぶ・・・。

最終的なglobal_variableを出力・・・。

で、global_variable_access_funcは何をやってるかというと、

この関数の中からglobal_variableを参照してその値を出力・・・。

そのあとglobal_variableに20を代入・・・。

これを実行すると、

$ ./global_variable
global_variable = 10
global_variable(in global_variable_access_func) = 10
global_variable = 20
$

となる・・・。

main関数内でglobal_variableに10を代入されたこと・・・。
global_variable_access_func関数内でglobal_variableの値( = 10)を参照し、出力していること・・・。
そして、そのあとglobal_variableに20を代入し、main関数で最終的なglobal_variableを出力したら、global_variableの値として20が出力されたこと・・・。
これでglobal_variableがどこでも参照、代入可能なグローバル変数になってるのがわかる・・・。

Sample/global_variable.c at master · bg1bgst333/Sample · GitHub