- 1 名前:デフォルトの名無しさん mailto:sage [2008/01/24(木) 14:52:45 ]
- このスレは標準C規格や規格に合致した移植性の高い記法・技法に関するスレです。
C言語初心者の初歩的な質問、GUIなどの標準Cではできない事の質問、 ソース丸投げ、宿題、書籍 などは専門の別スレッド↓があるのでそちらへ。 C言語なら俺に聞け(入門篇) Part 24 pc11.2ch.net/test/read.cgi/tech/1201083176/ 【初心者歓迎】C/C++室 Ver.47【環境依存OK】 pc11.2ch.net/test/read.cgi/tech/1200464091/ C/C++の宿題を片付けます 103代目 pc11.2ch.net/test/read.cgi/tech/1200318925/ 【書き込む前に】 ・まず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しましょう。 ・質問する前には最低限検索を。 ・エラー(警告含む)が起きたのならばエラーメッセージを書きましょう。 【参考文献】 C FAQ 日本語訳 www.kouno.jp/home/c_faq/ Cプログラマ必読 ・プログラミング言語C(通称 K&R) www.amazon.co.jp/exec/obidos/ASIN/4320026926/250-7563469-9920244 【このスレのログ】 前スレ:pc11.2ch.net/test/read.cgi/tech/1190261457/ 他の過去ログ:nssearch.hp.infoseek.co.jp/clang/ 【このスレ住人としての心得】 わざとスレ違いあるいはごく低レベルな質問を繰り返して 流れを妨害する荒らしがいます。適当に誘導して放置してください。
- 74 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 20:28:45 ]
- 反論したつもりはないよ。
- 75 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 20:54:06 ]
- なるほど。
基本型同士、あるいは基本型と構造体型との間で ポインタのサイズが違ってても良さそうではあるな。
- 76 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:16:41 ]
- int *とunsigned int*みたいな、指示先型の符号の有無だけが異なる場合、ポインタのサイズは等しい。
- 77 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:18:39 ]
- >>74
じゃあ何で一見関係ありそうで全然関係ない話をしたの?
- 78 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:33:08 ]
- >>77
>>69
- 79 名前:デフォルトの名無しさん mailto:sage [2008/02/03(日) 21:35:13 ]
- >>77
何でアンカー間違えただけでそんなに責められないといけないんですか><
- 80 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:59:51 ]
- 先に「間違えた」と言わないから。
- 81 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 21:58:01 ]
- >>79
条件の後出しはやめろと。
- 82 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:19:53 ]
- いじめが好きな人達が集まるスレ
- 83 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 23:56:02 ]
- といいつつ自分の非を棚に挙る人が責められるスレ
- 84 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 20:48:59 ]
- >>82-83
それはどのスレでもそう
- 85 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 15:22:26 ]
- ふと気になったんだけど
>50の、0Lをかっこでくくる必要あるの?
- 86 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 20:02:18 ]
- >>85
#include <stdio.h> #define HOGE 0L #define CAT2(a, b) a ## b #define CAT1(a, b) CAT2(a, b) #define CAT(a, b) CAT1(a, b) #define STR2(a) # a #define STR1(a) STR2(a) #define STR(a) STR1(a) int main() { long double a = CAT(0., HOGE); printf("%Lf\n", a); printf("%s\n", STR(CAT(0., HOGE))); return 0; }
- 87 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 20:43:53 ]
- マクロNULLをトークン連結演算子に投げ込むような状況があるとは思えんが
- 88 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 20:45:36 ]
- そういう問題じゃない
- 89 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 20:50:11 ]
- あってもこまらないし
あればもしかしたら役に立つかもしれないから 一般的にはある必要はない
- 90 名前:デフォルトの名無しさん mailto:sage [2008/02/18(月) 20:51:38 ]
- あってもこまらないし
あればもしかしたら役に立つかもしれないから とりあえずつけておけ
- 91 名前:デフォルトの名無しさん [2008/02/19(火) 23:04:55 ]
- 超カメレスなんだが >>64
ワードアドレッシングのマシンの場合, ワードアドレス + オフセット ここで, ワードアドレス == レジスタサイズ が, バイトポインタになり得ますが…
- 92 名前:デフォルトの名無しさん [2008/02/20(水) 14:01:41 ]
- 可変引数型の関数にいくつ引数が入力されたか、
数える方法はありますか?
- 93 名前:デフォルトの名無しさん mailto:sage [2008/02/20(水) 14:09:30 ]
- 標準では、ない
- 94 名前:92 [2008/02/20(水) 14:44:34 ]
- >93
サンクス
- 95 名前:デフォルトの名無しさん mailto:sage [2008/02/21(木) 23:25:37 ]
- そう言えばさぁ...
左辺がキャストできなくなったのは C89 からで ok ? int c; (char)c = 1; みらいやつ
- 96 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 02:33:43 ]
- *(char *)&c = 1;ならおk
ただしcharは必ず整合するけどもっと大きな型だとむやみなキャストは 境界に整合しなくなるおそれがある
- 97 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 07:32:26 ]
- それはキャストはしてるけど、
キャストした後の値に直接代入してる訳じゃないよね。
- 98 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 13:23:07 ]
- >>95
というかそれが出来た時期なんかあったのか どういう処理になるの?
- 99 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 13:30:53 ]
- >>95
少なくとも現在より前に制定された規格で、 (type)variable を左辺値として認めたものは一つもない。 たしか、gcc, msvcともにラフなモードではコンパイルとおるけど、 結果が違うようになったと思う。
- 100 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 13:35:11 ]
- ああ、C++で(type)が参照型なのは除く。
- 101 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 13:36:16 ]
- ちなみにC++だと(char&)c = 1って書ける。
- 102 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 19:10:21 ]
- >>98
*(char*)c = 1; と同じになった気がする。 K&R C あたりではできると聞いた事があるような気がするが、 詳しい事は俺は知らん。
- 103 名前:デフォルトの名無しさん mailto:sage [2008/02/22(金) 20:01:18 ]
- K&Rではできた。
- 104 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 01:50:20 ]
- Cでは符号なし整数をビットシフトすると論理シフト、符号有り整数をビットシフトすると算術シフトになるんですか?
- 105 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 01:53:58 ]
- 右シフトはそのとおり。
左シフトは論理/算術の区別が無い。
- 106 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 01:54:59 ]
- わかりました。
早いレスありがとうございます。
- 107 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 01:55:53 ]
- 符号あり整数をビットシフトして算術シフトになるかどうかは
C の規格では規定されていない。 ただ、実際問題そういう実装が多いだろうね。
- 108 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 01:57:02 ]
- unsignedは論理シフトになる
signedが算術シフトになるかどうかは処理系依存
- 109 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 02:59:55 ]
- 規格見直したら、負の数を右シフトしたときは結果の値が処理系定義になるって
書いてあった。つまり、算術シフトとも論理シフトとも違う結果が得られてもおかしくない わけだ。 あと、型が signed でも値が負じゃなければ unsigned と同じ動作って決められてた。
- 110 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 03:03:49 ]
- 2の補数表現じゃない環境だと
算術シフトにならない実装になってるだろうね。
- 111 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 09:37:18 ]
- ただしどうなるかは(規格準拠の処理系なら)マニュアルに明記されていなければならない
- 112 名前:デフォルトの名無しさん mailto:sage [2008/03/08(土) 20:29:31 ]
- 明記されていればry
- 113 名前:デフォルトの名無しさん mailto:sage [2008/04/02(水) 23:13:23 ]
- 最近レスが無いので、ビットシフトについて質問してもいいですか?
- 114 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 00:24:28 ]
- 負の数の右シフトが算術シフトになるか論理シフトになるかは処理系依存です。
- 115 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 00:29:04 ]
- 負の数の左シフトは?
- 116 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 00:42:31 ]
- 「場合によって未定義」でいいのかな?
f4.aaa.livedoor.jp/~pointc/105/No.27873.htm のNo.27888がわかりやすく解説してくれてる。
- 117 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 02:34:20 ]
- >>116
リンク先読んだら、負の数は全部未定義としか読めない。
- 118 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 06:56:17 ]
- The behavior is undefined if the right operand is negative,
or greater than or equal to the length in bits of promoted left operand.
- 119 名前:デフォルトの名無しさん mailto:sage [2008/04/03(木) 06:57:38 ]
- それはシフト数の方の話だった。
- 120 名前:デフォルトの名無しさん mailto:sage [2008/04/04(金) 13:58:33 ]
- そろそろビットシフトの質問の出番ですか?
- 121 名前:デフォルトの名無しさん [2008/04/07(月) 21:51:36 ]
- C言語をはじめたばかりであまりわからないのですが、
ビットシフトはなんの役に立つのでしょうか?
- 122 名前:デフォルトの名無しさん mailto:sage [2008/04/07(月) 22:33:59 ]
- スレ違い
- 123 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 03:27:19 ]
- 規格上未定義になってる処理を書いたら例外吐いて止まるコンパイラきぼう
いちいち覚えるの面倒
- 124 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 10:47:47 ]
- ベンダーに言え
- 125 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 12:31:00 ]
- もしさまざまなマシンでどのように実行されるか知らなければ、
知らないということが自分を守る助けとなるかもしれ ない from K&R
- 126 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 00:45:45 ]
- 例外吐かれるより警告がうれしいな・・・
- 127 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 20:48:04 ]
- エラーでいいよ。
どうせ警告も0にしてるんだし。
- 128 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 22:05:24 ]
- 俺は信号を見ないけど車は俺をよけて通れよ!
なんて高らかに宣言しなくても・・・
- 129 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 17:31:25 ]
- エラーでも警告でもアラーとでもいいけど、
そこで止まられるのは、、ちょっとやだな。
- 130 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 17:49:13 ]
- 過疎スレ
- 131 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 22:07:09 ]
- 結構前に、アラーメッセージというのがあったな・・・
- 132 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 22:31:01 ]
- アッラーアクバル!
- 133 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 20:00:31 ]
- pc11.2ch.net/test/read.cgi/tech/1206196600/637
↑ の件なんですが、こういうことに出くわした場合、 コンパイラはどういう風に振舞わなければならないとなってるのでしょうか? それとも未定義?
- 134 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 20:55:12 ]
- >>133
未定義 コンパイラの実装依存です リンカのオプションでエラーにする設定もおそらくあります src1.c と src2.c で変数 a の型が違ってたりすると悲惨です
- 135 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 21:01:07 ]
- C の仮定義ってファイルまたぐと適用外だっけ?
- 136 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 22:13:29 ]
- >>134
未定義と実装依存は違うし、そもそもコンパイラにとっては正しいソース なので、 > コンパイラはどういう風に振舞わなければならないとなってるのでしょうか? 普通に振舞うだけ。 大抵の環境ではリンカでエラーになるはず。 (そのスレでは、エラーにならないと言い張ってるが。)
- 137 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 22:19:34 ]
- >>136
未定義なので実装依存と書けばいいの? gcc なら警告無し borland C++ compiler なら警告あり 大抵の環境って何が基準?
- 138 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 22:30:12 ]
- VC++2008でも警告無しだな
- 139 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 22:31:34 ]
- みんなあんまり適当な事言うなよ?
>>133 あまり知られていないが、これは 「仮定義(tentative definition)」 という仕様。 extern も static もついていない、初期化を伴わないグローバル変数の宣言は 「仮定義」 と見なされる。 対する、extern も static もついていない、初期化を伴うグローバル変数の宣言は 「外部定義(external definition)」 と見なされる。 外部定義は必ず実体定義を伴う。 外部定義が複数あると、二重定義となりエラーとなる。 しかし、仮定義は他に実体定義がなければ実体を定義し、 他に実体定義があれば実体定義を伴わない単なる宣言と見なされる。 複数の仮定義を書いた場合、実体は1つだけ定義され、それらの仮定義は実体を共有する。 つまり、>>133 は仕様。
- 140 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 22:35:35 ]
- ちなみにこの仕様は C++ で廃止された。
C++ では仮定義がなくなり、 extern も static もついていない、初期化を伴わないグローバル変数の宣言も 外部定義と見なされ、実体定義を伴う。 このあたりの違いの話は C++ の規格の付録に書いてある。
- 141 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:14:40 ]
- >>137
> 未定義なので実装依存と書けばいいの? 違う。 未定義は何が起っても文句を言うなと言うこと。 (実行したらPCが壊れるような実行ファイルを生成しても規格には違反しない。) 実装依存は何が起るかは環境によって違うけど、環境毎に何が起るかは決まってい ると言うこと。 >>137, >>139-140 すまん、仮定義のことすっかり忘れてた。
- 142 名前:デフォルトの名無しさん mailto:sage [2008/04/23(水) 23:23:02 ]
- 未定義は規格は挙動を定義しないということで、
何が起こっても規格に反しないということではあるが、 処理系独自に挙動を定義することまでを禁止する物でもない。 もちろん、それに頼ったコードは通常移植性が低い訳だが。 処理系依存は処理系ごとに挙動を定義することが求められている。 未規定は未定義と似ているが、 正常なコードの中で挙動がきちんと定められていないものを言う。 関数の引数に書かれた式の評価順とか。
- 143 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 00:20:37 ]
- 仮定義は初耳でした、勉強になりました
ありがとうございます
- 144 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 00:30:36 ]
- うげ、仮定義って翻訳単位跨いでも使えるのか。
知らなかった。
- 145 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 00:49:31 ]
- 本当に翻訳定義またいで使えたっけ?
- 146 名前:デフォルトの名無しさん mailto:sage [2008/04/24(木) 01:24:54 ]
- 規格を見る限り、仮定義があると翻訳単位の一番下に = 0 で初期化された宣言があると見なされるようだ。
複数の翻訳単位がある場合は二重定義になりそう?
- 147 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 14:08:05 ]
- >>141-142
処理系依存・実装依存は処理系定義(implementation-defined)だけじゃない。 適当なこと言うなよ。 未定義・未規定・処理系定義 どれも処理系の実装に依存してるだろ。
- 148 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 14:20:11 ]
- 処理系定義は実装には依存しないだろ。
- 149 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 14:22:21 ]
- 実装によって挙動が違うことを規格が許している、ことを
実装に依存している、と言うのであって、 処理系定義は実装に依存していると思うが?
- 150 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 14:28:03 ]
- 処理系定義は仕様としての表明であり、実装とは切り離されている。
具体的なモノとは分けて考えるべきだろう。
- 151 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 15:08:26 ]
- JISでは処理系と訳されてるけどimplementation definedだから「実装」だべ
- 152 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 15:18:25 ]
- その文脈で
>>147 >どれも処理系の実装に依存してるだろ。 の意味を説明できるのか?
- 153 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 15:28:53 ]
- >>147 おおむねこんな意味かい?
処理系定義: 動作も結果も保証しないがどうのような振る舞いを示すかは 処理系が保証しなければならない 未規定: 動作の保証はないし処理系の振る舞いによって何が起るかは 不明 未定義: 何が起っても文句は言えない. 処理系自体も振る舞いを規定する必要はない
- 154 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 15:31:09 ]
- そもそもX3010に〜依存って言葉はあるんでしょうか?
- 155 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 15:36:43 ]
- >>153
未規定:規格が動作を明示することを求めいていない 例)関数の実引数は、どれから評価してもよいし、明示する必要もない。
- 156 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 15:37:40 ]
- ない。
一部の人間が勝手にimplementation definedと混同してるだけ。 >>136とか>>141とか>>142とか
- 157 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 16:07:28 ]
- 「規格が明確に定義していない」には3種類あって、以下のように定義されている。
・処理系定義(implementation defined)の動作 どう動作するかを実装が選択する。そのプログラムがコンパイルできないというのは許されない。 (この構成概念を使ったプログラムは誤りというわけではない。) (実装が)何を選んだかは(コンパイラの作者が)文書にしておかなければならない。 規格が合法な動作をいくつか用意していてそこから選ぶことができるかもしれないし、 必要条件をとくに課していないかもしれない。 ・未規定(unspecified)の動作 処理系定義の動作に似ている。ただし、どういう動作を選んだかは文書にする必要がない。 ・未定義(undefined)の動作 本当に何が起きても不思議はないことを意味する。規格は何の必要条件も課さない。 コンパイルできないかもしれないし、誤った動きをするかもしれないし (クラッシュしたり黙って誤った結果を出したり)、 あるいはたまたまプログラマの意図したとおりの動きをするかもしれない。 以上、CFAQより抜粋
- 158 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 17:52:27 ]
- もうメタ議論くらいしかすることないのな
- 159 名前:デフォルトの名無しさん mailto:sage [2008/05/05(月) 21:08:20 ]
- うん。
- 160 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 01:46:45 ]
- >154 >156
ただ、CFAQには「実装依存」を「処理系定義の動作」という意味で使っている場所がある。 正確ではないが、その言葉に出くわして意味を解釈する必要があるときは、そのように読むのが一般的であるかもしれない。
- 161 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 05:08:14 ]
- それはimplementation definedの正確でない訳だったりしないの?
- 162 名前:>>136 mailto:sage [2008/05/06(火) 11:07:05 ]
- 一般的な機論において、特に混乱するわけでもないから「〜依存」って
書いてるだけ。後出しで X3010 出してきて混同してるとか言われても、 「また KY 君かよ」としか思えない。
- 163 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 11:13:34 ]
- >>161
当たったところ、原文では implementation-defined と書いてあった。 ただそもそも日本語で実装依存といった場合におおよそ何を意味するかという話であるので (だから正確でないのは承知の上であることは書いた)。
- 164 名前:デフォルトの名無しさん mailto:sage [2008/05/06(火) 22:59:28 ]
- つまり
「実装依存」は場面によって指している物が違うから implementation definedの訳としては使わないほうがよい。 ということだな。
- 165 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 00:01:21 ]
- implementationは普通に訳せば実装という意味だから処理系定義という訳もアレかもしれんがな
「実装依存」そのまんまの意味であるimplementation-dependentはかなり広く使われてるようだが特定の言語に限った話じゃないしね
- 166 名前:デフォルトの名無しさん mailto:sage [2008/05/07(水) 01:26:51 ]
- 一般の議論ではよく使われる「依存」だが、このスレでは非推奨の
用語ということにしたほうがよさそうだな。 このスレでは直訳した「実装定義」か、JIS用語の「処理系定義」、 「未規定」、「未定義」を使い分けるということで。
- 167 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 13:13:18 ]
- C++ が存在するのに新しい C 言語の仕様を策定するのは、C++ のコンパイラは
実装が難しいからですか?
- 168 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 13:32:46 ]
- C++はCの上位集合ではありませんが?
- 169 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 15:05:56 ]
- 上位集合ではないが、ほとんどの場合ソースを変更する必要がないか、
少し変えれば両方で動くようになる。 C99 のように C++ との互換性に問題を作ってまで新しい仕様を作る 必要はないんじゃないか?
- 170 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 15:49:33 ]
- C++なんかどうでもよくね
- 171 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 20:03:05 ]
- C99なんて誰も必要としていない
- 172 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 23:16:34 ]
- inlineとか変数宣言のブロック先頭縛り廃止とかのC++追随と
vsnprintfにlong longなど有名どころの独自拡張の追認だけにしておけば、 もう少し広まった気がする。
- 173 名前:デフォルトの名無しさん mailto:sage [2008/05/16(金) 23:21:10 ]
- Bjarne 先生に相談しないで仕様を決めてしまったのかな。
- 174 名前:デフォルトの名無しさん mailto:sage [2008/05/17(土) 00:14:23 ]
- スレ違い
|

|