コマンドをキーワード検索しても、
ちょっと意味しているところがわからないのでどなたかお教え下さい。
1) YT[i][j] = (x<M) ? LZ : log(x);
2) y = (shared)?0.0:n[k]-o[k];
3) if (JP&US) mn[k] = x;
4) w = (q *)st->hk;
5) shared = GU(hs.m->v.var) > 1;
また
上記4)のstとか5)のmという構造体を何処かで定義しているところが
ないか調べてみたのですが、この.Cの中にも無ければ
このコードが使っているあらゆるヘッダーの中にも無かったのですが、
とすると、どんなところに入れられている可能性があるのでしょうか?
・条件演算子: ? :
・ビットごとの AND 演算子: &
例えば1は、
if( x<M )
{
YT[i][j] = LZ;
}
else
{
YT[i][j] = log(x);
}
と同じ意味です。同様に2は、
if( shared )
{
y = 0.0;
}
else
{
y = n[k]-o[k];
}
と同じ意味ですね。3は、
if( JP&US )
{
mn[k] = x;
}
なんですが、「ビット毎のAND演算」が何を意味しているか解りますか? その演算結果が0
でなければmn[k]にxを代入する、ということです。
4・5については、まずコンパイルを通してみてください。コンパイルが通るなら必ずど
こかにその変数を宣言しているところ、その型を定義しているところがあるはずです。
ヘッダーファイルが別のヘッダーファイルをインクルードしているということはありませ
んか? CかC++かが書かれていませんが、C++なら「親クラスで定義されている」という可
能性もありますので頑張って探し出してください。
1)-3)この手の内容は、VCを持たれているのならHELPで調べたほうが
よろしいと思います。
↓に「C ランケージリファレンス」の場所をお知らせします。
MSDNライブラリ
Visual C++ドキュメント
リファレンス
C/C++ 言語および C++ライブラリ
C ランケージリファレンス
最低でもこの辺は見ておいて下さい。
4)5)はプログラムの中で構造体の宣言をしていませんか
tibさんの言うとおりコンパイルが通れば、GREP機能で検索して下さい。
1,2は「三項演算子」を調べてみるとよいでしょう。
3は「論理演算子」を調べてみるとよいでしょう。
4,5で構造体の宣言場所がわからなければ struct で全ファイル検索すれば
何かわかるでしょう。
みなさん。
ありがとうございます。
じょじょにわかってきました。