C extern 使うかどうか・・。
-
- 記事: 38
- 登録日時: 13年前
C extern 使うかどうか・・。
C言語で大規模(1万行以上)なプログラムを作る際にextern宣言した外部変数は使った方がプログラムがまとまるのか、使わない方がまとまるのか一般的にはどっちなのでしょうか・・・?
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 15年前
- 住所: 東海地方
- 連絡を取る:
Re: C extern 使うかどうか・・。
使わないに越したことがないですが避けない方が良い(その方がバグになり辛い)状況はあるかも知れません。あるいはextern constを使うのは悪いことではないと思います。
ただ、基本的にファイルスコープ程度に留めたほうが質の悪いバグを内包しない可能性は高くなりますので変数のスコープはできるだけ限定するのが妙なバグに遭遇しない賢い方法です。
takumi@0832080.comさんが組んだことのある規模が分かりませんが、1万行程度も行くとちゃんと組まないと数カ月後に分けのわからないプログラムとなる事は間違いないです。
これは参考ですが龍神録50章でコメント・空白行込みで3500行程度ですね。
[補足]
変数をextern公開すると大体において、その場の思いつきのような場所で外部変数を利用するプログラムとなって後々意味のわからない処理がアチラコチラに分散して存在する事になる可能性が高いので嫌われます。ちゃんと設計すれば更新や参照は限定したモジュールに集中できて、外部公開する必要は出てこないですしバグも減ります。
ただ、基本的にファイルスコープ程度に留めたほうが質の悪いバグを内包しない可能性は高くなりますので変数のスコープはできるだけ限定するのが妙なバグに遭遇しない賢い方法です。
takumi@0832080.comさんが組んだことのある規模が分かりませんが、1万行程度も行くとちゃんと組まないと数カ月後に分けのわからないプログラムとなる事は間違いないです。
これは参考ですが龍神録50章でコメント・空白行込みで3500行程度ですね。
[補足]
変数をextern公開すると大体において、その場の思いつきのような場所で外部変数を利用するプログラムとなって後々意味のわからない処理がアチラコチラに分散して存在する事になる可能性が高いので嫌われます。ちゃんと設計すれば更新や参照は限定したモジュールに集中できて、外部公開する必要は出てこないですしバグも減ります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
-
- 記事: 38
- 登録日時: 13年前
Re: C extern 使うかどうか・・。
コメント有難う御座います。softya(ソフト屋) さんが書きました:使わないに越したことがないですが避けない方が良い(その方がバグになり辛い)状況はあるかも知れません。あるいはextern constを使うのは悪いことではないと思います。
ただ、基本的にファイルスコープ程度に留めたほうが質の悪いバグを内包しない可能性は高くなりますので変数のスコープはできるだけ限定するのが妙なバグに遭遇しない賢い方法です。
takumi@0832080.comさんが組んだことのある規模が分かりませんが、1万行程度も行くとちゃんと組まないと数カ月後に分けのわからないプログラムとなる事は間違いないです。
これは参考ですが龍神録50章でコメント・空白行込みで3500行程度ですね。
[補足]
変数をextern公開すると大体において、その場の思いつきのような場所で外部変数を利用するプログラムとなって後々意味のわからない処理がアチラコチラに分散して存在する事になる可能性が高いので嫌われます。ちゃんと設計すれば更新や参照は限定したモジュールに集中できて、外部公開する必要は出てこないですしバグも減ります。
3000程度しか書いたことは無いのですが、今後の作る可能性を考えて、その場合どうしたらいいか分からなかったため質問させて戴きました。
やはり補足でおっしゃるようになってしまいますよね。。。ファイルスコープ程度に抑えることを心掛けます。