C言語の館のソースのある部分がわかりません

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
cupa
記事: 117
登録日時: 2年前

C言語の館のソースのある部分がわかりません

#1

投稿記事 by cupa » 2年前

度々失礼します。

C言語の館の

コード:

#ifdef GLOBAL_INSTANCE
#define GLOBAL
#else
#define GLOBAL extern 
#endif

#include "function.h"
*GV.h

この部分がよくわかりません。

館では『「GLOBAL_INSTANCEが定義されていればGLOBALという文字は空白に置き換えられる」
「GLOBAL_INSTANCEが定義されていなければGLOBALという文字はexternに置き換えられる」
』とありますが、GLOBAL=externなのではないのでしょうか?別物なのでしょうか?
また、調べたらところ、staticやexternが付与されていない場合はデフォルトでexternがついたのと同じ、
ということらしいのですが・・・

cupa
記事: 117
登録日時: 2年前

Re: C言語の館のソースのある部分がわかりません

#2

投稿記事 by cupa » 2年前

後半の(また、~)部分については関数の場合です

cupa
記事: 117
登録日時: 2年前

Re: C言語の館のソースのある部分がわかりません

#3

投稿記事 by cupa » 2年前

あともう2つ、一番はじめの行に他ファイルがインクルードされていたのですが、なぜfunction.hだけ#endifのあとに書いてあるのでしょうか?

#endifがプログラムの最後に書いていないのは何故でしょうか、これじゃあインクルードガードになっていないのではないのでしょうか?

アバター
あたっしゅ
記事: 664
登録日時: 13年前
住所: 東京23区
連絡を取る:

Re: C言語の館のソースのある部分がわかりません

#4

投稿記事 by あたっしゅ » 2年前

東上☆海美☆「
> #endifがプログラムの最後に書いていないのは何故でしょうか、
> これじゃあインクルードガードになっていないのではないのでしょうか?

インクルードガードじゃないみみ。
VTuber:
東上☆海美☆(とうじょう・うみみ)
http://atassyu.php.xdomain.jp/vtuber/index.html
レスがついていないものを優先して、レスするみみ。時々、見当外れなレスしみみ。

中の人:
手提鞄あたッしュ、[MrAtassyu] 手提鞄屋魚有店
http://ameblo.jp/mratassyu/
Pixiv: 666303
Windows, Mac, Linux, Haiku, Raspbery Pi, Jetson Nano, 電子ブロック 持ち。

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

Re: C言語の館のソースのある部分がわかりません

#5

投稿記事 by みけCAT » 2年前

cupa さんが書きました:
2年前
GLOBAL=externなのではないのでしょうか?別物なのでしょうか?
はい、別物ですね。
extern はC言語の予約語であり、ユーザが定義しなくても使えます。
GLOBAL はただの識別子であり、ユーザが定義(または宣言)しないと使えません。
cupa さんが書きました:
2年前
また、調べたらところ、staticやexternが付与されていない場合はデフォルトでexternがついたのと同じ、
ということらしいのですが・・・
cupa さんが書きました:
2年前
後半の(また、~)部分については関数の場合です
GLOBAL は関数でないもの(変数)について使われていますよね?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

cupa
記事: 117
登録日時: 2年前

Re: C言語の館のソースのある部分がわかりません

#6

投稿記事 by cupa » 2年前

externとGLOBALは機能自体は同じなのでしょうか?

cupa
記事: 117
登録日時: 2年前

Re: C言語の館のソースのある部分がわかりません

#7

投稿記事 by cupa » 2年前

externとGLOBALは何が違うのでしょうか?

返信

“C言語何でも質問掲示板” へ戻る