作ってわかるCプログラミング
技術評論社

作ってわかる
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ページで使用されている画像・文章およびデータは、すべて著作権法上の保護を受けています。