>>555
あのぉ・・・ 画像処理とは関係ないC言語に関する一般的な質問だから、C言語の
初心者のスレで聞いたほうがいいと思うよ。まあ、今回だけサービスするけど。

そのリストではx と y が intすなわち符号付整数なのだということしか分からないけど、
この外で、x_size2 と y_size2 は、符号なしの整数として宣言されているんだろうね。
size_t とか書いていないかい?

符号つきの整数と符号なしの整数が混在している計算のとき、C言語の規格では、
まず符号なしに変換してから計算する。

大小の比較をする場合も同じ。(引き算の一種として処理するから)
このため、符号付整数の中味がマイナスの場合に、比較結果がおかしくなる。

たとえば、符号付き整数のマイナス1は、符号なし整数では、表現可能な最大値に
該当するから、符号付整数変数にマイナス1が入った状態で、符号なし整数と比較すると
どえらいことになる。

(論理的に考えれば、マイナス1と「符号なしの整数」を比較するなら、いつでも後者の
ほうが大きいはずだけど、コンパイラはまずマイナス1を符号なし整数の最大値に
変換して型をそろえてから比較するので、常に前者が大きいということになる。ためしに
int x = -1; unsigned int xx = 0; に対して、if (x < xx) を実行してごらん? 必ず偽になる。)

ということで、コンパイラは事務的に警告を出しているわけ。このプログラムに限って
いうなら、どうせ x も y もゼロから始まって増えるだけだから、問題はない。

警告メッセージが気持ち悪いなら、「変数の宣言を適切にする」か、計算部分で「適切に
キャストする」ということになるけど、どういうふうに修正するのが論理的に「適切」かは、
場合による。

とりあえず、オレならこのプログラムの int x,y; を unsigned int x,y; にすると思うな。