【初心者歓迎】C/C++室 Ver.100【環境依存OK】 [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2016/11/06(日) 22:58:02.60ID:dU5z27As
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。

◆ソースのインデントについて
半角空白やTABでのインデントはスレに貼ると無くなります。
そのため、アップローダーに上げるのも手ですが直接貼る場合は、
全角空白か に置換すると見栄えだけはよくなります。

【アップローダー】(質問が長い時はココ使うと便利)
http://codepad.org/ (コンパイルもできるし出力結果も得られる[]privateをチェック)
http://ideone.com/ (時間帯によってはcodepadが重い事があるのでここも利用)

前スレ
【初心者歓迎】C/C++室 Ver.99【環境依存OK】
http://echo.2ch.net/test/read.cgi/tech/1469177649/
2017/02/07(火) 07:22:03.04ID:ff698yUf
>>354
> そもそもレジスタだけで済ませるかどうかはコンパイラの自由ってのもあるし
その自由さのために言語仕様でできないようにしてるだけでしょ
2017/02/07(火) 07:23:26.33ID:ff698yUf
>>359
再現性あるならどこが遅くなってるかを調べたら?
2017/02/07(火) 07:43:41.13ID:AbeSLyAt
>その自由さのために言語仕様でできないようにしてるだけでしょ

根拠は俺の「こうだったらいいな」
この理屈で行くとアドレスをとれる変数は
レジスタに乗せてはいけないことになるな
2017/02/07(火) 11:15:58.10ID:bjgueVwS
register云々してるやつはCかC++か区別して書け
2017/02/07(火) 11:47:58.10ID:+LdvU0fQ
class A
{
 public:
  int xxx;
  void yyy();
};

class B : protected A  ←protectedのままにしたい
{
 public:
  void yyy() {  __super::yyy();  }
};

B bbb;
bbb.xxx = 0;   ←アクセスできない
bbb.yyy();    ←使える

xxxをclassBの内部を変えることでアクセスできるようにする方法ない?
2017/02/07(火) 11:52:35.77ID:Ex9Qk6T0
public:
using A::xxx;
2017/02/07(火) 11:57:42.37ID:+LdvU0fQ
>>366
おお!yyy()もそれでいけるね。サンクス
2017/02/07(火) 19:45:06.55ID:R+lISOuU
>>364
register変数のアドレスを取る話をしてるわけじゃないのに
いきなりどうした
2017/02/08(水) 19:54:01.02ID:zyGgo9zG
俺,register使ったことないが
register int a = 0;
int *b = &a;
とすると、b経由で割り当てられたCPUレジスタにアクセスできるのか?
2017/02/08(水) 20:15:16.32ID:x9WXoVQQ
cではregister指定された変数のアドレスは取れない
c++では取ってもいいが、取ると普通はレジスタではなくメモリ割り当てになる

そもそもregister指定しても必ずレジスタ割り当てになるわけではない
今のコンパイラの多くはregisterを無視してるらしい
2017/02/08(水) 20:21:15.44ID:6Dg3FALd
>>369
それ面白いけど実装がめちゃくちゃ大変だし、そもそもメリットないだろ
372デフォルトの名無しさん
垢版 |
2017/02/08(水) 20:38:12.66ID:Z1e//95W
C++では次のC++17(今年出る予定)から機能削除、かつ将来のためにキーワードは予約だよ
2017/02/08(水) 20:41:11.49ID:039KZGQ+
register int a = 0;
int *b = &a;
これで b が a を格納してるCPUレジスタをポイントすると、
b++ とかした時に、どのレジスタを指すの? て話で困るんじゃないか。

int& b = a;
という具合に参照で受ければ何とか…。
374デフォルトの名無しさん
垢版 |
2017/02/08(水) 20:43:52.35ID:Z1e//95W
>>373
そんなの普通の変数だって未定義動作じゃん
2017/02/08(水) 20:47:07.07ID:6Dg3FALd
>>373
> b++ とかした時に、どのレジスタを指すの? て話で困るんじゃないか。
ax 指してたら bx を指すようになる
dx 指してる時に b++ したらお約束の鼻から悪魔でいいだろ
2017/02/08(水) 21:02:48.15ID:x9WXoVQQ
なんでx86前提なんだよ
実際出来ないんだから議論の意味ないが、出来たとしても実装依存だろ
2017/02/08(水) 22:06:39.93ID:r8a3b7fC
>>374
おい馬鹿
int aho{};
int *p{&aho};
p++;
これが未定義動作などと規格のどこに書いてある?
2017/02/08(水) 22:23:33.67ID:t4XC3Oio
p++ が動作未定儀か否かとは関係ない話だと思うが

ポインタの指し先を求めず、ポインタの演算と差分
 int a;
 int* p = &a;
 int* q = p + 1;
 q-p;

で 実体の要素数+1 までは正しく差分が取れることを保障している ってどっかであった記憶
379デフォルトの名無しさん
垢版 |
2017/02/09(木) 02:31:40.69ID:lnTHGhne
>>377
>>378
んなこた知っとるわ。どのレジスタを指すのかって言ってんだからポインタの先を参照する事前提だろ?
そうじゃなきゃ単に無理やり割り当てたアドレスに+1にすればいいだけ。指し示す先に何があるかなんて関係ない。
2017/02/09(木) 03:48:37.73ID:WRm++DjL
int i;
int *ip=&i;
ip+1はほんとにあるんかい?
いやあるんだろうけどw
2017/02/09(木) 06:05:01.98ID:4sYnDBFk
同等なレジスタを32個とか内蔵してて番号で区別する
RISCチップだと不自然でもない気がしてきた。
2017/02/09(木) 06:22:52.94ID:ZHuRANtU
>>379
>>374 については?
普通の変数だって(指し先参照してないのに)未定儀動作とか言っちゃってるんですけど
2017/02/09(木) 06:42:00.30ID:RO+sEjyT
>>376
> なんでx86前提なんだよ
お前の言うように実装依存なんだから例に決まってるだろ
68k なら d0, d1, ... ってもっと分かりやすいし他のプロセッサでも適当に決めりゃいいだけ
てか、ネタに突っ込むならもっと面白い奴にしてくれ
2017/02/09(木) 07:01:49.92ID:RO+sEjyT
>>381
for(register int* r = &_r0; r < &_r32; r++){
*r = 0;
}
で、全レジスタがクリアできるとか便利かも
で r が _r3 辺りに割り当てられててバグるところまでがセットだよな w
2017/02/09(木) 12:57:20.22ID:DuGTx+Z0
レジスタってそう多くないから別に…
SPARCのレジスタウィンドウ合わせて128個とかならまあ
2017/02/09(木) 14:24:27.76ID:ZeoIDdik
つ ゼロページレジスタ
2017/02/09(木) 16:59:44.90ID:m9bylyVb
register int a = 0;
int *b = &a;
としたとき、Cではアドレスが取れないって話だったが、C++では取れる
が、次期規格でregisterは無視されるようになる・・・って話だよね

ま、仮にアドレスを取ったとしても何も問題ないように思うが
というのも、CPUの演算は通常レジスタに対してしかできないし
一方でアドレスが取れるのはメモリにあるものだけなので
普通の変数もレジスタとメモリの間を最新の値が行ったり来たりしているのが通常で
コンパイラは矛盾が起きないようなコードを吐き出すように出来ている
だからregister指定要らないよねって話になってるだろう

そもそも、可能な限りレジスタに配置する、というのがあいまいで
レジスタは有限個なのでregister指定しても必ずしもレジスタのみに配置されるかどうか
分からないしCPUにもよる
ここで、アドレスを取ったらレジスタのみに配置することが出来ないのだから
register指定であっても、「可能な限りレジスタに配置する」が出来ないということで
普通の変数扱いということで問題ない
2017/02/09(木) 17:03:46.90ID:XjHAaCWU
>次期規格でregisterは無視されるようになる・・・って話だよね

文盲は去れ
長文で荒らすな
2017/02/09(木) 17:18:48.08ID:m9bylyVb
>372 名前:デフォルトの名無しさん[] 投稿日:2017/02/08(水) 20:38:12.66 ID:Z1e//95W [1/2]
>C++では次のC++17(今年出る予定)から機能削除、かつ将来のためにキーワードは予約だよ

は噓ということ?
2017/02/09(木) 17:24:14.08ID:WRm++DjL
registerってのを使わなきゃいんでないのw
2017/02/09(木) 17:31:18.93ID:aUQtcCRM
規格なんて知らんがレスから想像するとこうじゃないのか?

今の規格は「可能ならレジスタに割り当てろ」で、実際のコンパイラは無視してるのが多い
事実上機能してないから次期規格では仕様変えてregister変数やめる
2017/02/09(木) 17:50:34.94ID:55oKC5Ju
C++ではすでにregisterは無視されてて、17からはエラーになるってことだろ
393デフォルトの名無しさん
垢版 |
2017/02/09(木) 18:47:17.89ID:lnTHGhne
C++11の時点でdeprecatedになってて
C++17で書いたらエラーになる
キーワードはいつか規格で何かに再利用するかもしれないから予約したまま(ユーザーが関数名などに使用出来ないまま)。
394デフォルトの名無しさん
垢版 |
2017/02/09(木) 19:03:26.16ID:QPpApk6a
https://www.youtube.com/watch?v=quIHgwuF6r4&;sns=em
2017/02/09(木) 20:05:28.75ID:IuYXl6Zl
>>393
registerについては、再利用の可能性というより、混乱の元だから今後は誰も触れてくれるなってところかな。
2017/02/09(木) 20:34:41.55ID:wAatsUnZ
今、キーワードとして問題ないからそのままにしておくってことだろ
一旦キーワードでなくしてしまうと将来また使いたくなった時に大混乱するから
2017/02/09(木) 20:46:05.15ID:WRm++DjL
C++17なんてもあるのか。 ついてけんわぁ
2017/02/10(金) 12:36:17.18ID:yPTk9ivW
register使うなら今のうち
2017/02/10(金) 16:29:47.71ID:gDFEqThI
C++17以降のregisterは、ガチャガチャチーン!とbeep音を鳴らします
2017/02/11(土) 17:45:33.84ID:B6KA1QDA
Mingwのgccでこんなのためしたら結構はやくなるのね。C++だと速度変わらんかったけど。
#include <windows.h>
#include <stdio.h>
int main(void) {
register int i;
DWORD t;
t = GetTickCount();
for(i=0 ; i <100000000 ; i++);
printf("%d\n",(int)(GetTickCount()-t));
return 0;
}
2017/02/11(土) 17:50:28.59ID:o1zrWG0U
registerネタどんだけ続けるんだ
2017/02/11(土) 18:02:59.72ID:Ka66uAeU
>int main(void) {
> register int i;

変数を先頭で宣言しないと精神の安定が保てない病気
2017/02/11(土) 18:27:32.77ID:2x1BPms4
っくっだらないとこでも叩いておかないと精神の安定が保てない病気
2017/02/11(土) 18:51:03.55ID:jl0P82O4
インデントや{}のスペース・改行でも自分のやり方と違うと喚きそうだなw
2017/02/11(土) 19:53:33.79ID:7HNC8OW9
>>404
違和感がでるよね。
会社でこれがうちのスタイルって強制され、それになじむと
そうじゃないスタイルのものは気持ち悪いって感じるようになった

>for(i=0 ; i <100000000 ; i++);
最近のコンパイラはまじめにやらないで、コンパイル時にiは使ってないあるね
処理省くニダってして実行コード生成してなさそうな気がするが。
2017/02/11(土) 19:59:07.05ID:nnf0vKBy
K&R2 あたりにあわせておけば問題ないのでは?
というか,K&R2 から大幅に変えさせられるのは苦痛だな
2017/02/11(土) 21:18:53.92ID:vquAI+Jk
21世紀にもなってK&Rとか何の冗談
変化が苦痛な老人はすっこんでて
2017/02/11(土) 21:22:09.84ID:e+WRwiZx
http://echo.2ch.net/test/read.cgi/tech/1193554741/
2017/02/11(土) 21:51:35.00ID:o1zrWG0U
21世紀に相応しいスタイルを是非教えてくれ
2017/02/11(土) 22:42:56.52ID:2x1BPms4
可能な限りC/C++使わない
それが21世紀スタイル
2017/02/11(土) 22:58:24.73ID:nOWXV3w9
>>410
おいおい、でも、それが正しいな。
2017/02/12(日) 02:53:21.48ID:guRObziH
正しいけど"可能な限り"の範囲がまだまだ足りない
組み込みの世界はC言語が強過ぎて未だにC++すら使えない環境がざらにあるしな
2017/02/12(日) 08:33:11.98ID:XNCDxJ48
>>407
C/C++ くらいなら,K&R2 に準拠にさせてよー C#, Java も,とはいわないからさー
414デフォルトの名無しさん
垢版 |
2017/02/12(日) 08:43:31.97ID:MRPxQTsD
>>413
C++を入れるなよ
2017/02/12(日) 10:10:03.29ID:nF2JpTw9
結局C言語で全て済んでしまうからね。他は趣味。はっきりわかんだね
2017/02/12(日) 14:01:05.04ID:XNCDxJ48
>>414
いっしょだよ,C++ も普通に K&R2 に似せて書くのが一番いい
2017/02/12(日) 15:47:27.43ID:CF268nsq
>>402 の「ブロック先頭で変数を定義するのは時代遅れ」ていう
指摘を受けての流れじゃないかな。

最初の使用の直前まで変数定義を遅らせることができる、
というC++での改良や、それを取り込んだC99以降で
わざわざK&R2版の書き方に制限されるのは困るという話。

おそらく、K&R2に似たスタイルが良いという主張も
「新しく追加された便利機能は使った上でK&R風のスタイル」
という意図なんだと思う。
2017/02/12(日) 15:59:10.19ID:rZ/K+l3Q
>>400はiの宣言を先に、tよりも先にすることで、何を試したのかってのをわかりやすくしてんだろ
K&Rなんかにこだわるよりもこういうソースの方がいいわ
2017/02/12(日) 17:25:00.92ID:XNCDxJ48
>>417
当然だ
2017/02/13(月) 00:11:12.09ID:ebN6PGVD
使う直前に変数を宣言してるとたまにgoto出来ないerrorが出るのが面倒くさい
2017/02/13(月) 11:51:26.73ID:M86uydzz
ブロックの違う同名変数の取り違えでトラブってるのを見てから
宣言位置が不揃いなのもよくないと思うようになった
2017/02/14(火) 01:24:51.99ID:xlM9Sf4d
それは宣言位置の問題じゃなくて、1ブロックが大き過ぎることが原因じゃないか?
2017/02/14(火) 08:51:02.57ID:SrPWZnE2
スコープ違う同名の変数を書いたら間違えた
 ↓
宣言位置をスコープの先頭に揃えておけば俺はきっと気づけたんだ!

これがバカの思考
424デフォルトの名無しさん
垢版 |
2017/02/14(火) 09:10:51.81ID:MfKEp5BT
お前等が宣言位置を先頭に揃えておかなかったから俺が間違えたんだ

とまでいかなければまだ許せる。
2017/02/14(火) 09:11:22.01ID:H0Zx0irg
スコープ違う同名の変数を書いたら間違えた
 ↓
次から気をつけよう!
 ↓
またミス

>>423はこのタイプ
426デフォルトの名無しさん
垢版 |
2017/02/14(火) 09:16:00.91ID:MfKEp5BT
423じゃないが間違えたことないな
どうやったら間違えるのか教えて欲しいくらい
2017/02/14(火) 09:25:27.92ID:he6YB8dM
多分ブロックごとコピペしてたまたまエラーが出なかったんだろ
2017/02/14(火) 09:37:58.47ID:tRUBGDEd
世の中には1関数が1000行を超える糞コードが存在するからな
そんな糞コードに後から修正入れようとすると信じられないようなミスも起こる
2017/02/14(火) 10:07:10.54ID:H0Zx0irg
関数の長さと糞さは別だな
無理に短くしてあちこち飛ぶコードの読みにくさったらありゃしない
430デフォルトの名無しさん
垢版 |
2017/02/14(火) 10:25:24.18ID:ze+N1Rxh
短いからといって読みやすいはとは限らないが、
長いと読みにくいのは確実なので無関係ではないな
2017/02/14(火) 12:52:20.45ID:8LvI494R
>>429
1行目と2行目で矛盾してるぞ
2017/02/14(火) 15:01:49.07ID:Y4N6R9g2
短く を目標にはしないが、長いと
どうしても何かの力を感じてw
短くしたくなるわなぁ
2017/02/14(火) 15:19:01.37ID:t9BEI7G/
必死にprivate関数で小分けにしてた頃を思い出すわ
気にしなくなってprivate関数の存在価値がよく分からなくなった
2017/02/14(火) 15:31:24.51ID:Y4N6R9g2
privateとその長さは関係ないと思うが
2017/02/14(火) 17:04:37.50ID:lntB2yLX
俺も429派かなぁ
特に再利用するようなものでもないのに関数に小分けにしてもあまり意味がないし
仮に1000行あったとしても、制御構造が単純で上から下へ逐次実行するだけだったり
プログラムの読みにくさと関数の長さは根本的に関係ないと思う
関数の長さに関係なく単純に、
仕様が複雑で、ややこしいことしている箇所は、やはりややこしい
難しいアルゴリズムを使っている個所は、やはり難しい
2017/02/14(火) 17:07:50.38ID:lntB2yLX
そうはいっても100行を超える関数はさすがに書いたことないけどな
クラスビューとかでジャンプできなくなるから作業性に問題が出る
2017/02/14(火) 17:12:21.40ID:lntB2yLX
100行と書いたけど、それは1000行のまちがいだ
100行を超える関数は普通に書くことがあるな
新しいC++になってからラムダが関数内関数の代わりに使えるようになったから
こういったものを駆使すると長い関数を書いても比較的に問題が出にくくなったってのはある
メソッドにするとクラス空間が汚れるから関数内関数の方がよい場合も多々
2017/02/14(火) 19:47:15.52ID:vv2eSSm9
100行超える関数はほとんど書かないけど、
100行超えるコメントはしょっちゅう書くな。
2017/02/15(水) 01:17:06.93ID:xbLGAB7Z
名付けに困らないくらいの単位で処理を纏めて上にポイだな
無名ネームスペース大活躍

再利用しなくても処理を分けとくとバグを潰しやすいし
2017/02/16(木) 04:06:20.95ID:6VkTpxSR
ラムダ 入門 で検索しても簡単なサイトが見つかりません。
どこか良いサイトか書籍はありませんか。
2017/02/16(木) 04:13:34.86ID:0dItl/ZH
入門しなきゃならん奴が使うもんじゃない
2017/02/16(木) 04:38:21.71ID:6VkTpxSR
https://cpplover.blogspot.jp/2009/11/lambda.html?m=1
ありました。
http://d.hatena.ne.jp/gintenlabo/touch/20130516/1368711542

ここ2つでまずは頑張ってみます。
2017/02/16(木) 12:45:23.20ID:SkhlZoRn
よくわからんもの
ラムダ式、関数オブジェクト
2017/02/17(金) 04:01:51.58ID:/gNkD5d3
#include <iostream>
using namespace std;
int main() {
unsigned char aa=0x31;
cout << hex<<aa <<endl;
return 0;
}
なんで 31 と表示されないのでしょう
2017/02/17(金) 05:25:27.96ID:Z2r3IJRX
たぶん 1 が表示されるでしょ。
aa が char だから出力ストリームでは文字が出る。
数値を出したければ aa を int で定義するか、
cout のところで int にキャストしてやらないと。
2017/02/17(金) 07:07:08.11ID:39ud/5Wb
>aa が char だから出力ストリームでは文字が出る

因果関係がよくからないのですがcharだとなぜ文字がでるの?
2017/02/17(金) 07:22:25.14ID:fOTzzkTG
>>446
渡した値の型によって、それをどう表示するかが異なるように作られているから。
printfという関数で出力する場合は、出力したい値のほかにそれをどういう形式で出力するかという情報を別に与えていたけど、iostreamでは、型で自動的に処理してくれる。
2017/02/17(金) 07:52:16.70ID:+UDZhFA4
uint8_tとか使ってるとき嵌るんだよなぁ。
2017/02/17(金) 07:53:27.01ID:Z2r3IJRX
「C++では引数の型や個数が異なる同じ名前の関数をいくつも定義できて
引数の型や個数に応じた別々の動作にできる」
「関数引数の変数値が(Cとは異なり)自動的にはintに格上げされない」
くらいしか説明の文面を思いつかないけど、我ながら分かりにくいな。

coutに対する<<演算子(を実行する関数)が、
charの引数に対しては文字を、intの引数に対しては数値を
出力するよう上手いこと作られている。
ってのは「昔からそう決まっとる」式の押し付けがましい感じだし。
2017/02/17(金) 15:18:41.50ID:/gNkD5d3
>>445
ども 書いた後、すぐintでやったらわかった。
"<<" 系の入出力演算子とビットシフトの問題も同じ理由か。
2017/02/17(金) 17:04:51.60ID:xoJSqgdl
VC++の質問です。
フォームのコントロール(ボタンなど)をアンマネージクラスに保持する方法が知りたいです。

// コンストラクタの引数より、ラベルのコントロールをprivateに保存し、setLabelTextでラベルのテキストを変更するクラス
class LineController
{
private:
  System::Windows::Forms::Label^* label_;
public:
  LineControllerSystem::Windows::Forms::Label^% label);
  void setLabelText(System::String^ str); // label_のTextに引数strを設定。
};


最初に表示されるフォームのコンストラクタにて上記のクラスをnewし、そのクラスインスタンスをアンマネージクラスのシングルトンに保存しています。
シングルトンに保存直後に、シングルトン経由でsetLabelTextメソッドを実行した場合は正常label_のTextを変更可能でした。
しかしボタンクリックイベント内にて、同様にシングルトン経由でsetLabelTextをコールするとlabel_へアクセスしたタイミングで「オブジェクト参照がオブジェクト インスタンスに設定されていません。」が発生してしまいます。

本エラーを回避するにはどのような手法をとればよいでしょうか?
追跡参照(%)などを調べているのですが現状解決の糸口が見えません。
シングルトン及び上記LineController自体はできればマネージにしたくないです。。。
2017/02/19(日) 11:23:25.68ID:2DCCXMeS
C++の話題そのものではないのですが
バブルソートとか初歩的なアルゴリズム
を優しく解説している書籍はありませんか。

Amazon見てるのですがもう少し情報がほしいです。
2017/02/20(月) 01:05:36.35ID:aWzwD2VT
>>452
ピタゴラスイッチでバブルソートやクイックソートの概念をグラフィカルに紹介してたよ。
それはさておき、本屋の店頭でアルゴリズムとかデータ構造とかがタイトルに含まれる本をパラパラめくって分かり易いのを探すといいかと思う。
2017/02/21(火) 00:15:43.57ID:OFTvUoLj
とあるOSSをとあるシステムに移植していて、
Intel(2013)やGNU(4.9系)ではコンパイルできるのに
そのシステム専用コンパイラではコンパイルできずエラーになります。
ソースコードやヘッダファイルを修正すれば通るだろうというのは経験的にわかっているのですが
どこを修正したらよいかというのを見つけ方がわからないのですが見つけ方のコツみたいなのはあるのでしょうか?
2017/02/21(火) 00:32:08.81ID:fcoMqi2n
エラーメッセージの意味を考えろ
2017/02/21(火) 01:18:37.30ID:9fQxfYbZ
>>454
エラーメッセージを見ないことには回答のしようがないと思うぞ

まぁ、専用のコンパイラという言い回しから察するに、C++03程度しかサポートしていない古いコンパイラでも使ってるんじゃないか?
エラーが出ている行の周辺でC++11以降の言語機能か、ライブラリでも使ってんじゃね?
2017/02/21(火) 01:18:57.64ID:bFUDo/lz
>>454
ともかく、
そのシステム専用コンパイラ提供しているところに、世界標準のIntel(2013)やGNU(4.9系)ではコンパイル
出来るのにお前のものではできないから出来るようにしたコンパイラをよこせと激しくクレーム
2017/02/21(火) 01:32:37.44ID:bFUDo/lz
>>456
C++11いっぱいのコードをC++03に修正するって大変そうだな
2017/02/21(火) 06:31:57.51ID:OFTvUoLj
>>456
>>457
メッセージは
「オーバーロードされた関数"HOGE"のインスタンスが引数リストと一致しません。」
みたいな感じです
一応C++11準拠でGNU4.9一部互換とされてるコンパイラですが。。。
2017/02/21(火) 08:12:09.46ID:9fQxfYbZ
>>459
HOGEが想定している引数型と実際に渡している引数の型を確認
違うやつが犯人

これ以上は情報少なすぎてわからん
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況