作ってわかる
Cプログラミング
Column on Web
書籍には掲載できなかったコラム・および追記を掲載します。
■ボーランド社コンパイラーの問題への対処
(2004年01月28日記述)
本文の[p237 §8.4 改良(2)辞書順の整列とデータ格納方法の合理化]で使うqsort()関数の呼び出しに関して。
sort3.cおよびsort4.cでqsort()関数を呼んでいる箇所は、
ボーランド社のCコンパイラー(Borland C++)ではエラーとなってしまうという問題がある。
この個所は本来はエラーにならず、出たとしても警告(Warnning)のみだ。
ボーランド社のCコンパイラーをお使いのかたは、
次の個所をキャスト指定するよう変更してほしい。
原文: qsort(line, n, sizeof(char *), mycomp);
訂正: qsort(line, n, sizeof(char *), (int (*)(const void *, const void *))mycomp);
その他のコンパイラーをお使いの方で、もしこのqsort()に関する警告が気になるならば(そのままでも実害はないのだが)、同様にキャストしてほしい。
■コメントの形式――その2
(2001年11月21日記述)
yet another...
2章では、
/* と*/ で囲まれた範囲を
“コメント”とする方法を紹介した。
実はこれほかにもう1つコメントを書く方法がある。
// と書いたあとの行末までがコメントとなるやり方だ。
つまり、たとえば、
int h_len; /* 水平サイズ */
のような書き方だけでなく、
int c_num; // 色番号
というようにも書けるということだ。
2つのスラッシュ/ の間には空白をあけずに続けて書くこと。
歴史
この“もうひとつのコメントの形式”は
最新の標準規格(C99)で正式に採用されたものだが、
実はその10年近く前から
多くのコンパイラーにおいて各コンパイラーの拡張機能として使えるようになっていたので、
よほど古いコンパイラーでないかぎり使うことができるだろう。
すでに標準規格で取り入れられたわけなので、
古いコンパイラーで使う可能性があるなどの理由であえて
使わない場合(たとえばこの本ではそうしてある)を除き、
そのコンパイラーが対応しているならば、どんどん使っても問題ない。
ところで、この形式のコメントはC++では当初より採用されていたものなので、
C++からのフィードバックだと思う人もいるかもしれないが、
実はCの祖先であるBCPL由来のものだ。
むしろ隔世遺伝か先祖返りといったところだろう。
→戻る
−注意−
このWWWページで使用されている画像・文章およびデータは、すべて著作権法上の保護を受けています。
|