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