!extend:checked:vvvvv:1000:512
↑
次スレを作る時は上記1行をコピーして2行に増やして必ず1行目に入るようにしてください。
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
※前スレ
C言語なら俺に聞け 148
https://mevius.5ch.net/test/read.cgi/tech/1537347410/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
C言語なら俺に聞け 149
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ af9f-7TBo)
2018/10/28(日) 22:01:44.38ID:D9Gt7gmT0277デフォルトの名無しさん (ワッチョイ bebe-lzSb)
2018/12/01(土) 09:27:25.60ID:piawvWud0 サブルーチンと関数って違うのか(無知)
>>276
GOSUB 命令がありました
GOSUB 命令がありました
279デフォルトの名無しさん (アウアウウー Sa47-7zod)
2018/12/01(土) 10:14:48.66ID:/TQ/ikyba ラベルはなかったね
280デフォルトの名無しさん (ワッチョイ b78a-+5zm)
2018/12/01(土) 10:27:11.17ID:tI2T+oTI0281デフォルトの名無しさん (ワッチョイ bebe-lzSb)
2018/12/01(土) 16:05:57.68ID:piawvWud0282デフォルトの名無しさん (ワッチョイ 0bb3-C0zt)
2018/12/01(土) 16:11:09.57ID:oMoZEV7I0 アセンブラだと値返していようがいまいがサブルーチンっていうよね
今曖昧だってことは元々曖昧だったのかな
今曖昧だってことは元々曖昧だったのかな
283デフォルトの名無しさん (ワッチョイ e3f2-r3MB)
2018/12/01(土) 16:42:04.42ID:mW7z3f7A0 もともとは呼び出しがステートメントであって返値というものが存在しないサブルーチンと、
値を返して式の一部となる関数という区別だね。
式+;が文になるという単純化を行ったCではその区別もなくなってそれが主流になった。
副作用のないものが関数、ありえるのがサブルーチン、と定義を変えて復活はあるかも。
値を返して式の一部となる関数という区別だね。
式+;が文になるという単純化を行ったCではその区別もなくなってそれが主流になった。
副作用のないものが関数、ありえるのがサブルーチン、と定義を変えて復活はあるかも。
284デフォルトの名無しさん (ワッチョイ 4e81-C0zt)
2018/12/01(土) 16:58:01.89ID:6zv/O1Bm0 void以外は関数って事だな
285デフォルトの名無しさん (ワッチョイ 0bb3-Gcmv)
2018/12/01(土) 17:11:46.73ID:FtOkB0gI0 言語(VBとか)によっては明確な違いがあったりするけど、概念的にはサブルーチン⊃関数というイメージあるわ。
286デフォルトの名無しさん (ササクッテロレ Sp3b-4pMt)
2018/12/01(土) 18:36:37.73ID:qSa8BGaMp 副作用のある手続きをほんとは関数とは呼ばないのだろうけど
Cではそんなことに頓着せず全て関数に単純化したからね
ただ本来サブルーチンとはメインルーチンと対立する文脈で語られていたものかと
これは単なる呼び出し関係だけでなく、古い言語では変数のスコープなども異なる
Cではこれも単純化してしまった
main は単にスタートアップルーチンから最初に呼び出されるという以外は
特別なスコープを持つわけでもなく、他の関数と何ら違いがない
他の関数から main を呼ぶことも、普通やらないだけで問題なく可能だ
Cでサブルーチンという名前がしっくりこないのはこの辺が理由でもあるかと
Cではそんなことに頓着せず全て関数に単純化したからね
ただ本来サブルーチンとはメインルーチンと対立する文脈で語られていたものかと
これは単なる呼び出し関係だけでなく、古い言語では変数のスコープなども異なる
Cではこれも単純化してしまった
main は単にスタートアップルーチンから最初に呼び出されるという以外は
特別なスコープを持つわけでもなく、他の関数と何ら違いがない
他の関数から main を呼ぶことも、普通やらないだけで問題なく可能だ
Cでサブルーチンという名前がしっくりこないのはこの辺が理由でもあるかと
287デフォルトの名無しさん (ワッチョイ e3f2-r3MB)
2018/12/01(土) 19:00:11.99ID:mW7z3f7A0 ああ、関数と対比されるのはサブルーチンじゃなくて正しくはプロシージャ(手続き)だね。
288デフォルトの名無しさん (ササクッテロレ Sp3b-4pMt)
2018/12/01(土) 19:53:46.70ID:qSa8BGaMp >>287
そうだけと、その辺の用語も統一されてるとは言い難いところがあるよ
AdaなどのPascal系の言語ではprocedureとfunctionという区別があるよね
まぁ値を返すかどうかという違いでしかないわけだけど
VBではPascalのprocedureに相当するのはSubであって、SubとFunctionをまとめた
上位概念としてプロシージャと言うからね
そうだけと、その辺の用語も統一されてるとは言い難いところがあるよ
AdaなどのPascal系の言語ではprocedureとfunctionという区別があるよね
まぁ値を返すかどうかという違いでしかないわけだけど
VBではPascalのprocedureに相当するのはSubであって、SubとFunctionをまとめた
上位概念としてプロシージャと言うからね
289デフォルトの名無しさん (ワッチョイ bebe-lzSb)
2018/12/01(土) 21:37:27.03ID:piawvWud0 mainが特別扱いされてると言えばOSが受け取れる返り値は0--255なのにint型を指定するってところとかかな。
290デフォルトの名無しさん (ワッチョイ 769f-C0zt)
2018/12/01(土) 22:24:12.87ID:3EVAE8120 Perl ではサブルーチンは sub で始まる。これはCの関数のようにも使える。
291デフォルトの名無しさん (ワッチョイ 2b4f-y69T)
2018/12/01(土) 22:38:01.02ID:VxENaYkZ0 >>286
> 副作用のある手続きをほんとは関数とは呼ばないのだろうけど
> Cではそんなことに頓着せず全て関数に単純化したからね
逆だぞ。関数型が馬鹿やったから「副作用」なんて言葉が必要になったのであって。
元々Cの関数は副作用がない。これは単純に、Cの場合は引数で渡すしかないからだ。
(当たり前だがグローバルは使わないとする)
だからC全盛の時代には「副作用」なんて言っている奴すら居なかった。
関数型の連中が副作用(キリッとか気にする必要がでてきたのは、クロージャを濫用したからだ。
単純に言えば、関数に対しての値の渡し方は、
・引数
・グローバル
・this(OOPの)(=インスタンス内グローバル)
・クロージャ(=レキシカルスコープの場合は階層内グローバル)
とあって、クロージャは使い方を間違えば結合を強めてしまうんだよ。
(thisの場合は最初からクラス界面で切る《=public/privateを意識して設計する》
からそこまで酷くはならない)
Cはそれがないから、便利に書けない反面、無駄に結合するって事もない。
(少なくとも、結合していることは明示的に見える)
伊達に50年近く現役な訳でもないのさ。現役で居続けられた理由がある。
>>288
AdaとかPascalとか、最早死んで誰も使わないし使う価値もない言語を持ち出しても、
何の意味も無いと思うぜ。
それらが死んだのは、それなりの理由があるんだよ。
> 副作用のある手続きをほんとは関数とは呼ばないのだろうけど
> Cではそんなことに頓着せず全て関数に単純化したからね
逆だぞ。関数型が馬鹿やったから「副作用」なんて言葉が必要になったのであって。
元々Cの関数は副作用がない。これは単純に、Cの場合は引数で渡すしかないからだ。
(当たり前だがグローバルは使わないとする)
だからC全盛の時代には「副作用」なんて言っている奴すら居なかった。
関数型の連中が副作用(キリッとか気にする必要がでてきたのは、クロージャを濫用したからだ。
単純に言えば、関数に対しての値の渡し方は、
・引数
・グローバル
・this(OOPの)(=インスタンス内グローバル)
・クロージャ(=レキシカルスコープの場合は階層内グローバル)
とあって、クロージャは使い方を間違えば結合を強めてしまうんだよ。
(thisの場合は最初からクラス界面で切る《=public/privateを意識して設計する》
からそこまで酷くはならない)
Cはそれがないから、便利に書けない反面、無駄に結合するって事もない。
(少なくとも、結合していることは明示的に見える)
伊達に50年近く現役な訳でもないのさ。現役で居続けられた理由がある。
>>288
AdaとかPascalとか、最早死んで誰も使わないし使う価値もない言語を持ち出しても、
何の意味も無いと思うぜ。
それらが死んだのは、それなりの理由があるんだよ。
292デフォルトの名無しさん (ワッチョイ 4e81-C0zt)
2018/12/01(土) 22:43:10.84ID:6zv/O1Bm0 >>291
ねえねえ、Fortranは?
ねえねえ、Fortranは?
293デフォルトの名無しさん (アメ MMff-egAi)
2018/12/01(土) 22:58:40.52ID:fkjVwInMM なんだCの関数には副作用なかったのか。これで安心してprintfできる
294デフォルトの名無しさん (ワッチョイ bebe-lzSb)
2018/12/01(土) 23:00:40.61ID:piawvWud0 Cに副作用の概念はないって……それは流石に嘘でしょう。
箇所は失念してしまったがK&Rにも関数を指して「文字列を出力したりする場合もあるので純粋な関数とは呼べない」
みたいな記述あるくらいだし。
箇所は失念してしまったがK&Rにも関数を指して「文字列を出力したりする場合もあるので純粋な関数とは呼べない」
みたいな記述あるくらいだし。
295デフォルトの名無しさん (ブーイモ MMff-6Zjp)
2018/12/01(土) 23:07:56.71ID:8rj5PksfM void君は今日も平常運転
296デフォルトの名無しさん (ワッチョイ 2b4f-y69T)
2018/12/01(土) 23:11:44.86ID:VxENaYkZ0297デフォルトの名無しさん (アウアウウー Sa47-7zod)
2018/12/01(土) 23:56:03.97ID:C49O7CpGa 引数voidって初めて見たぞ
298デフォルトの名無しさん (ワッチョイ bebe-lzSb)
2018/12/02(日) 00:31:53.73ID:jISJOvCb0 void君人気っすね。羨し…くはないなw
299デフォルトの名無しさん (ワッチョイ 4e81-C0zt)
2018/12/02(日) 00:39:59.56ID:qwr+Mk5T0 秋田
300デフォルトの名無しさん (ワッチョイ 2b4f-y69T)
2018/12/02(日) 00:45:19.85ID:Bx+z5yQP0301デフォルトの名無しさん (ワッチョイ ff05-ZETi)
2018/12/02(日) 00:53:05.03ID:+Qh0SqlG0 よく分からん捨て台詞だな
302デフォルトの名無しさん (ワッチョイ 769f-C0zt)
2018/12/02(日) 00:55:37.62ID:twRH93OM0 https://ja.wikipedia.org/wiki/%E3%82%86%E3%81%A8%E3%82%8A%E4%B8%96%E4%BB%A3#%E5%AE%9A%E7%BE%A9%E3%83%BB%E7%AF%84%E5%9B%B2
ゆとり世代については明確な定義、範囲はなく諸説ある。
小中学校において2002年度施行(高等学校は2003年度)の学習指導要領による教育を受けた世代(1987年4月2日 - 2004年4月1日生まれ)。
小中学校において1980年度以降(高等学校は1982年度以降)の学習指導要領による教育を受けた世代。1966年度生まれ以降。
1966年度生まれ以降。
1966年度生まれ以降。
1966年度生まれ以降。
1966年度生まれ以降。
1966年度生まれ以降。
ゆとり世代については明確な定義、範囲はなく諸説ある。
小中学校において2002年度施行(高等学校は2003年度)の学習指導要領による教育を受けた世代(1987年4月2日 - 2004年4月1日生まれ)。
小中学校において1980年度以降(高等学校は1982年度以降)の学習指導要領による教育を受けた世代。1966年度生まれ以降。
1966年度生まれ以降。
1966年度生まれ以降。
1966年度生まれ以降。
1966年度生まれ以降。
1966年度生まれ以降。
303デフォルトの名無しさん (ワッチョイ 2b4f-y69T)
2018/12/02(日) 01:01:50.46ID:Bx+z5yQP0304デフォルトの名無しさん (ワッチョイ 9a2b-lzSb)
2018/12/02(日) 01:23:06.59ID:26H0WWJ10 >>291
まず、副作用という言葉は C が生まれる前から使われていたし意識されていたことですよ
Lisp をやってれば分かることだけど
C 全盛時にCプログラマが副作用という言葉を使わなかったのは当然でしょうね
C は副作用そのものであるノイマンアーキテクチャを素直に表現できる言語と
目されていたわけで (i++ とか)、それこそ最初はグローバル変数も使いまくりだったのでは
また、引数で文字列を渡すにもポインタを使わざるを得ないので、それが破壊されることを
防ぐ手立てがなかった (今でもないか)
引数経由でなくても、ポインタが使えるということは、そこに任意のアドレスを設定でき、
任意の場所に書き込めるということなので、C の関数で副作用を防ぐ手立てはないわけですよ
C 界隈で副作用うんぬんが取り沙汰されるようになったのは const 引数の導入や、
グローバル変数の弊害が意識されるようになって、むしろ民度が上がってきたと見るべきかと
あと、Oracle のストアドプロシジャ PL/SQL をやったことはないですか
あの文法は Ada そのものなんだけど
まず、副作用という言葉は C が生まれる前から使われていたし意識されていたことですよ
Lisp をやってれば分かることだけど
C 全盛時にCプログラマが副作用という言葉を使わなかったのは当然でしょうね
C は副作用そのものであるノイマンアーキテクチャを素直に表現できる言語と
目されていたわけで (i++ とか)、それこそ最初はグローバル変数も使いまくりだったのでは
また、引数で文字列を渡すにもポインタを使わざるを得ないので、それが破壊されることを
防ぐ手立てがなかった (今でもないか)
引数経由でなくても、ポインタが使えるということは、そこに任意のアドレスを設定でき、
任意の場所に書き込めるということなので、C の関数で副作用を防ぐ手立てはないわけですよ
C 界隈で副作用うんぬんが取り沙汰されるようになったのは const 引数の導入や、
グローバル変数の弊害が意識されるようになって、むしろ民度が上がってきたと見るべきかと
あと、Oracle のストアドプロシジャ PL/SQL をやったことはないですか
あの文法は Ada そのものなんだけど
>>302
1966以前と1966以後では教育内容で変化があったのですか?数学に関する限り一時期は線形代数も微積分もやる、という過剰な状況だったと思っています
1966以前と1966以後では教育内容で変化があったのですか?数学に関する限り一時期は線形代数も微積分もやる、という過剰な状況だったと思っています
306デフォルトの名無しさん (ワッチョイ a7c3-lF2n)
2018/12/02(日) 01:41:19.09ID:1UGGVPSQ0307デフォルトの名無しさん (ワッチョイ a7c3-lF2n)
2018/12/02(日) 01:45:35.26ID:1UGGVPSQ0 >>305
そうですよね。いま働いている日本人のほとんどはゆとり教育です。
ただ昔は教科書に載っているだけでまともに教えていないと思います。
学年トップレベルだったという年配の多くが義務教育の範囲さえ、完全に忘れているか、知らなかったりします。
そうですよね。いま働いている日本人のほとんどはゆとり教育です。
ただ昔は教科書に載っているだけでまともに教えていないと思います。
学年トップレベルだったという年配の多くが義務教育の範囲さえ、完全に忘れているか、知らなかったりします。
308デフォルトの名無しさん (ワッチョイ 2b4f-y69T)
2018/12/02(日) 01:46:50.51ID:Bx+z5yQP0 >>304
> 引数経由でなくても、ポインタが使えるということは、そこに任意のアドレスを設定でき、
> 任意の場所に書き込めるということなので、C の関数で副作用を防ぐ手立てはないわけですよ
それは「副作用」ではなく「バグ」と言うんだよJava以外では。
その他諸々色々勘違いするのは自由だが、
さすがにそれだと話が通じなさすぎて煙たがられてるだろ。
> あと、Oracle のストアドプロシジャ PL/SQL をやったことはないですか
> あの文法は Ada そのものなんだけど
無いね。
ただ、Oracleがそうなら、Ada文法がまだ生き続けていることにはなる。この点は訂正しよう。
とはいえ、それが「参考にする意味があるか」とは別だよ。
本当に意味がある物は、「オブジェクト指向」や「クロージャ」のように、
ほぼ全ての言語でサポートされる事になる。
現状、procedure/function/Subを区別してない言語がメジャーで、
区別した言語(Ada/Pascal/VB)はことごとくマイナーだし、
最近のクロージャのようにC#/C++/Java等のメジャー言語が
相次いで方針を変更してサポートした、ということもない。
それは不要だった、ということで結論は出てる。
それを反例と持ち出してきても意味がないだろ。
> 引数経由でなくても、ポインタが使えるということは、そこに任意のアドレスを設定でき、
> 任意の場所に書き込めるということなので、C の関数で副作用を防ぐ手立てはないわけですよ
それは「副作用」ではなく「バグ」と言うんだよJava以外では。
その他諸々色々勘違いするのは自由だが、
さすがにそれだと話が通じなさすぎて煙たがられてるだろ。
> あと、Oracle のストアドプロシジャ PL/SQL をやったことはないですか
> あの文法は Ada そのものなんだけど
無いね。
ただ、Oracleがそうなら、Ada文法がまだ生き続けていることにはなる。この点は訂正しよう。
とはいえ、それが「参考にする意味があるか」とは別だよ。
本当に意味がある物は、「オブジェクト指向」や「クロージャ」のように、
ほぼ全ての言語でサポートされる事になる。
現状、procedure/function/Subを区別してない言語がメジャーで、
区別した言語(Ada/Pascal/VB)はことごとくマイナーだし、
最近のクロージャのようにC#/C++/Java等のメジャー言語が
相次いで方針を変更してサポートした、ということもない。
それは不要だった、ということで結論は出てる。
それを反例と持ち出してきても意味がないだろ。
309デフォルトの名無しさん (ワッチョイ bebe-lzSb)
2018/12/02(日) 01:48:13.42ID:jISJOvCb0 老害がブチ切れてて草
変ったのは世の中じゃなくてお前の脳味噌やぞ老いぼれ
変ったのは世の中じゃなくてお前の脳味噌やぞ老いぼれ
310デフォルトの名無しさん (ワッチョイ 2b4f-y69T)
2018/12/02(日) 01:50:31.40ID:Bx+z5yQP0311デフォルトの名無しさん (ワッチョイ 2b4f-y69T)
2018/12/02(日) 01:55:27.80ID:Bx+z5yQP0312デフォルトの名無しさん (ワッチョイ 769f-C0zt)
2018/12/02(日) 02:36:57.19ID:twRH93OM0 自分がゆとりであることに気付かずにだからゆとりはと言い出すやつばかり。
それが今の時代。
それが今の時代。
313デフォルトの名無しさん (ワッチョイ e3f2-r3MB)
2018/12/02(日) 07:38:01.21ID:3j0ioh6B0 >(当たり前だがグローバルは使わないとする)
副作用について議論するうえでこんな変な条件付ける人はいない。
あと当然だが、引数によって参照される関数スコープ外の値を変化させるのも副作用だ。
副作用について議論するうえでこんな変な条件付ける人はいない。
あと当然だが、引数によって参照される関数スコープ外の値を変化させるのも副作用だ。
314デフォルトの名無しさん (ワッチョイ 2b4f-y69T)
2018/12/02(日) 10:14:19.71ID:Bx+z5yQP0 >>313
> こんな変な条件付ける人はいない
君がグローバルを普段から濫用している人だとは理解した。
> あと当然だが、引数によって参照される関数スコープ外の値を変化させるのも副作用だ。
勿論。
というか、まともに議論する気があるのなら、明確に条件を確定させなければならない。
何も言わないのなら、C言語での『標準的な』コーディングを各自が想定することになる。
君が普段からグローバルを濫用しているのは理解したが、それは俺の『標準』ではないし、
君みたいな馬鹿が出てきて無駄に議論が空回りするのが嫌だから、俺は明示的にそれを除外した。
そしてこの条件付けは『標準的』であり、問題ないと俺は考えている。
君がグローバルを含めて副作用を議論したいのならそうすればいい。
俺はその議論には意味が無いと思うから参加はしない。
君の言うように、俺は「参照透過」は以下の2種類に分けて考えるべきだと思っている。
・狭義の参照透過…sin()等
・広義の参照透過…qsort()等やthis
・参照透過でない…その他全部、つまりクロージャやbindやグローバルを用いるもの
通常の文脈で言われる『副作用』はおそらく関数型()言語から来ている。
それは上記「参照透過でない」物を濫用した結果だ。
Cの場合は最初からそれが出来ないから、その議論が発生することはなかっただけ。
それとは別に、意識高い系関数型()の「『狭義の参照透過』だけでプログラミングすべき」、
というのは当たってはいるが、実際の所それは多値を返せないと厳しい。
そして多値返しよりも参照を返してそこからアクセスしろ、というのがメインストリームの言語だろ。
それの方が楽だから。
> こんな変な条件付ける人はいない
君がグローバルを普段から濫用している人だとは理解した。
> あと当然だが、引数によって参照される関数スコープ外の値を変化させるのも副作用だ。
勿論。
というか、まともに議論する気があるのなら、明確に条件を確定させなければならない。
何も言わないのなら、C言語での『標準的な』コーディングを各自が想定することになる。
君が普段からグローバルを濫用しているのは理解したが、それは俺の『標準』ではないし、
君みたいな馬鹿が出てきて無駄に議論が空回りするのが嫌だから、俺は明示的にそれを除外した。
そしてこの条件付けは『標準的』であり、問題ないと俺は考えている。
君がグローバルを含めて副作用を議論したいのならそうすればいい。
俺はその議論には意味が無いと思うから参加はしない。
君の言うように、俺は「参照透過」は以下の2種類に分けて考えるべきだと思っている。
・狭義の参照透過…sin()等
・広義の参照透過…qsort()等やthis
・参照透過でない…その他全部、つまりクロージャやbindやグローバルを用いるもの
通常の文脈で言われる『副作用』はおそらく関数型()言語から来ている。
それは上記「参照透過でない」物を濫用した結果だ。
Cの場合は最初からそれが出来ないから、その議論が発生することはなかっただけ。
それとは別に、意識高い系関数型()の「『狭義の参照透過』だけでプログラミングすべき」、
というのは当たってはいるが、実際の所それは多値を返せないと厳しい。
そして多値返しよりも参照を返してそこからアクセスしろ、というのがメインストリームの言語だろ。
それの方が楽だから。
315デフォルトの名無しさん (ワッチョイ 9a33-o5Pc)
2018/12/02(日) 10:48:22.22ID:3LBO8TR+0 少なくともCにおける「副作用」はずっと昔からの規格で定義されている用語だから、
独自定義で話されるのは困る。
http://kikakurui.com/x3/X3010-2003-01.html#13
> ボラタイルオブジェクトへのアクセス,オブジェクトの変更,ファイルの変更,
> 又はこれらのいずれかの操作を行う関数の呼出しは,すべて副作用(side effect)と呼び,
> 実行環境の状態に変化を生じる。...
独自定義で話されるのは困る。
http://kikakurui.com/x3/X3010-2003-01.html#13
> ボラタイルオブジェクトへのアクセス,オブジェクトの変更,ファイルの変更,
> 又はこれらのいずれかの操作を行う関数の呼出しは,すべて副作用(side effect)と呼び,
> 実行環境の状態に変化を生じる。...
316デフォルトの名無しさん (ワッチョイ 2b4f-y69T)
2018/12/02(日) 11:25:56.48ID:Bx+z5yQP0317デフォルトの名無しさん (ワッチョイ 0bb3-C0zt)
2018/12/02(日) 12:58:23.54ID:mXB0v2zh0 C言語使う人ってアドレスって言ったほうがわかりやすい場合でもポインタっていうよね
ポインタの意味が多くて混乱する
ポインタの意味が多くて混乱する
318デフォルトの名無しさん (ワッチョイ 4e80-gjgg)
2018/12/02(日) 14:18:51.99ID:uIlAasYL0 副作用は、volatile とか、何かの状態を変えること
関数型のmonad とか、
Vuex, Nuxt.js みたいに、1方向のライフサイクルを作って、
状態は、Mutation からしか変えられないとか
どこかのタイミングに、絶対に変化していない、ポイントを作る
WEB+DB 106号に載っている、Flux。
状態管理のデザインパターン、単一方向のデータフロー
関数型のmonad とか、
Vuex, Nuxt.js みたいに、1方向のライフサイクルを作って、
状態は、Mutation からしか変えられないとか
どこかのタイミングに、絶対に変化していない、ポイントを作る
WEB+DB 106号に載っている、Flux。
状態管理のデザインパターン、単一方向のデータフロー
319デフォルトの名無しさん (ブーイモ MMba-ZETi)
2018/12/02(日) 20:00:19.47ID:nNQIp+BOM なんだまたvoid君の無知っぷりが露呈したのか
320デフォルトの名無しさん (ワッチョイ 4e61-45aa)
2018/12/03(月) 06:04:46.06ID:9nl14toh0 C言語はファイルポインターを配列を指すようにして同じように扱うことはできませんよね。
それなので同じように扱うにはファイルポインターと配列のラッパーを自分で作らなければいけませんよね。
それなので同じように扱うにはファイルポインターと配列のラッパーを自分で作らなければいけませんよね。
321デフォルトの名無しさん (ワッチョイ 5fe0-fbyJ)
2018/12/03(月) 06:13:41.09ID:MMlQh9qb0 >>320
mmapやfmemopenを調べてみ
mmapやfmemopenを調べてみ
322デフォルトの名無しさん (ワッチョイ 4e61-45aa)
2018/12/03(月) 06:53:46.78ID:9nl14toh0323デフォルトの名無しさん (アウアウウー Sa47-7zod)
2018/12/03(月) 10:00:18.38ID:KLYQbJ33a fmemopenって何に使うと便利なの?
324デフォルトの名無しさん (ワッチョイ 9a9f-0gpL)
2018/12/03(月) 10:10:02.85ID:98KtjA3l0 なんだこれ?引数 void って初めて見たぞ。文法的にありなのかこれ?
325デフォルトの名無しさん (アウアウウー Sa47-2q9Y)
2018/12/03(月) 10:44:00.29ID:7ySpxLkda >>323
FILE * 経由の入力や出力をするように書かれているプログラムで使うと便利な場合があると思う。
FILE * 経由の入力や出力をするように書かれているプログラムで使うと便利な場合があると思う。
326デフォルトの名無しさん (ワッチョイ 0e3f-C0zt)
2018/12/03(月) 12:19:30.10ID:dfidJp1A0 >>324
晒しage
晒しage
327デフォルトの名無しさん (アウアウウー Sa47-2q9Y)
2018/12/03(月) 12:27:39.88ID:7ySpxLkda >>326
それはC言語を知らない初心者が前スレだったかで残した名言
それはC言語を知らない初心者が前スレだったかで残した名言
328デフォルトの名無しさん (ワッチョイ 0e3f-C0zt)
2018/12/03(月) 13:14:41.09ID:dfidJp1A0 長文の連投で得意がってるあいつな
329デフォルトの名無しさん (ブーイモ MMba-6Zjp)
2018/12/03(月) 13:29:26.35ID:UG3pz1BhM プロセスメモリエディタも初めて見たり副作用を知らなかったりする彼ね
330デフォルトの名無しさん (ワッチョイ 4e80-gjgg)
2018/12/03(月) 14:06:18.11ID:xHLM582p0 Ruby には、StringIO と言う、メモリ上だけに存在する仮想ファイルがある。
これは、IO クラスの派生クラスではなく、
文字列クラスに、IO にある関数をDuck Typing したもの(インターフェース)
StringIOインスタンス.read, puts など、ファイル操作と同名の関数を使える
テストの際に、本当のファイルを作らなくても、
メモリ上だけでファイルの振りができるので、楽
これは、IO クラスの派生クラスではなく、
文字列クラスに、IO にある関数をDuck Typing したもの(インターフェース)
StringIOインスタンス.read, puts など、ファイル操作と同名の関数を使える
テストの際に、本当のファイルを作らなくても、
メモリ上だけでファイルの振りができるので、楽
331デフォルトの名無しさん (アメ MMff-egAi)
2018/12/03(月) 14:31:36.79ID:+OGeTNm4M へぇーっ!メモリ上だけに存在する仮想ファイル?Rubyすごぉ〜い!
特許取った方がいいんじゃない?
ノーベル賞狙えるかもー!?
特許取った方がいいんじゃない?
ノーベル賞狙えるかもー!?
332デフォルトの名無しさん (アウアウウー Sa47-7zod)
2018/12/03(月) 14:38:57.12ID:KLYQbJ33a 単体テストで使った様な気もしてきた
でもまあストリームは難しいわ。fopenよりopenが好きだよ
でもまあストリームは難しいわ。fopenよりopenが好きだよ
333デフォルトの名無しさん (アウアウウー Sa47-2q9Y)
2018/12/03(月) 16:07:39.69ID:7ySpxLkda ノーベル仮装ファイル賞
334デフォルトの名無しさん (ワッチョイ 0e3f-C0zt)
2018/12/03(月) 17:24:12.07ID:dfidJp1A0 C++にもstringstreamがあって
メモリ内でファイルイメージが作れる
しかもcin, cout, ifstream, ofstreamの
メンバ関数・フレンドが全て使える
メモリ内でファイルイメージが作れる
しかもcin, cout, ifstream, ofstreamの
メンバ関数・フレンドが全て使える
335デフォルトの名無しさん (アメ MMff-egAi)
2018/12/03(月) 18:30:35.22ID:+OGeTNm4M なぁんだRubyパクリだったのか。ダッサ。
パクリRuby!
パクリRuby!
336デフォルトの名無しさん (ドコグロ MM92-TLTW)
2018/12/03(月) 19:19:41.79ID:OHB3X56LM >>326
このスレの初心者乙
このスレの初心者乙
337デフォルトの名無しさん (ワッチョイ 2b4f-y69T)
2018/12/03(月) 21:56:42.64ID:r8O+Z3hZ0 >>329
プロセスメモリエディタを知ってる=Cを知ってる、になるのか。
さすがゆとり、だな。
お前らはそんなことばかりするから、お前らの居場所を無くして行ってるんだぜ。
自覚出来てないんだろうけど。
まあ、ゆとりに付ける薬はないって事だな。
三つ子の魂百まで、と同様、ゆとりの魂百まで、なのだろう。
プロセスメモリエディタを知ってる=Cを知ってる、になるのか。
さすがゆとり、だな。
お前らはそんなことばかりするから、お前らの居場所を無くして行ってるんだぜ。
自覚出来てないんだろうけど。
まあ、ゆとりに付ける薬はないって事だな。
三つ子の魂百まで、と同様、ゆとりの魂百まで、なのだろう。
338デフォルトの名無しさん (ワッチョイ db64-VZvV)
2018/12/04(火) 00:25:16.59ID:VVlGsdy50 void君怒りのポエム
339デフォルトの名無しさん (ワッチョイ 769f-C0zt)
2018/12/04(火) 22:17:29.21ID:YeiHZFGw0 彼は自分がゆとりであることに気付かない。超ゆとりである。
340デフォルトの名無しさん (ワッチョイ 9164-5svG)
2018/12/06(木) 08:22:58.33ID:cC0kDT7D0 勉強始めて半年くらいの初学者だけどenumの便利さに今日気が付いて震えてる
case文がシェルスクリプトとかのと比べてあんなに使いにくいものになってるのはそういうことだったのね……。
case文がシェルスクリプトとかのと比べてあんなに使いにくいものになってるのはそういうことだったのね……。
341デフォルトの名無しさん (アウアウウー Sa05-u1Zc)
2018/12/06(木) 09:11:25.93ID:mp97/YFka なんにせよまあswitch/caseはあんまり使わない方がいいですよ。
342デフォルトの名無しさん (ワッチョイ ab3f-n9Ol)
2018/12/06(木) 10:46:35.55ID:y2fvjog80 なんで?
343デフォルトの名無しさん (アウアウウー Sa05-u1Zc)
2018/12/06(木) 11:06:46.21ID:mp97/YFka クソコードに発展しやすいんです。
if文の方がちゃんとしてる。
if文の方がちゃんとしてる。
344デフォルトの名無しさん (ブーイモ MMab-nAVI)
2018/12/06(木) 11:09:04.26ID:qlBG7toFM 偏見だしアホとしか思えん
345デフォルトの名無しさん (アークセー Sxcd-EBCi)
2018/12/06(木) 12:09:10.95ID:uFg4otuRx switchは単一の変数(大抵は状態)を比較してることが一目瞭然。
case内が長くなって醜いのは全く別の問題。
case内が長くなって醜いのは全く別の問題。
346デフォルトの名無しさん (アウアウウー Sa05-MnXc)
2018/12/06(木) 12:25:09.83ID:nzH90qpKa まあ今となってはコンパイラが軽く最適化してくれれば全く同じコードになってしまうかも知れず、どちらで書くかは見易さの問題だけかも知れない。
ま、switchはbreakなしで下に抜けるっていうifとの違いがあるからそれ利用してたら別だけどな。
ま、switchはbreakなしで下に抜けるっていうifとの違いがあるからそれ利用してたら別だけどな。
347デフォルトの名無しさん (ワッチョイ b3eb-u+MK)
2018/12/06(木) 14:08:22.67ID:CZHWXsyR0 switch〜caseで、char 値の比較の場合、昔のコンパイラでも最適化した時、
条件分岐じゃなくて、テーブルジャンプにしてくれるものがあったなあ。
最近のコンパイラが if〜else if〜 で記述した時、どう最適化してくれるのかは知らない。
条件分岐じゃなくて、テーブルジャンプにしてくれるものがあったなあ。
最近のコンパイラが if〜else if〜 で記述した時、どう最適化してくれるのかは知らない。
348デフォルトの名無しさん (アウアウカー Sa9d-u1Zc)
2018/12/06(木) 14:36:37.49ID:LNgus+SNa 文法に罪はない人が悪いと言って終わるならば、もうなんでもありで良いんです。
C++の方が選択肢が多い分圧倒的に優れてるとも言える。
C++の方が選択肢が多い分圧倒的に優れてるとも言える。
349デフォルトの名無しさん (アウアウカー Sa9d-u1Zc)
2018/12/06(木) 14:39:02.58ID:LNgus+SNa 自分的にアホだと思う書き方はcaseの中身を{}でくくっちゃうやつです。
そんなことするなら関数呼べや。
そんなことするなら関数呼べや。
350デフォルトの名無しさん (バットンキン MM75-EBCi)
2018/12/06(木) 14:59:28.18ID:dlLKQRwlM case文内に関数にするほどでもない、ちょっとした処理を書きたいとき、その処理内だけで使う変数宣言は{}使ってその中に書いちゃうわ。
351デフォルトの名無しさん (アウアウウー Sa05-MnXc)
2018/12/06(木) 15:27:35.39ID:nzH90qpKa そういやswitchのブロックの先頭でも変数宣言できるんだよな。
今はどこでもできるから関係ないとは思うが昔は驚いた。
今はどこでもできるから関係ないとは思うが昔は驚いた。
352デフォルトの名無しさん (ワッチョイ 9164-5svG)
2018/12/06(木) 17:17:12.54ID:cC0kDT7D0 地味に都合の良いスコープ範囲だから便利っちゃ便利だよね。
353デフォルトの名無しさん (アウアウウー Sa05-u1Zc)
2018/12/06(木) 17:23:21.26ID:8Uba5j5za たとえば、caseではクロージャ的なもんが使えて、関数ポインタに代入。
抜けた後でそれを実行、とかできるのなら許容するかも。
抜けた後でそれを実行、とかできるのなら許容するかも。
354デフォルトの名無しさん (アウアウウー Sa05-MnXc)
2018/12/06(木) 18:06:57.01ID:nzH90qpKa それは普通にできるのでは?
355デフォルトの名無しさん (ドコグロ MMb3-KUw8)
2018/12/06(木) 18:53:53.96ID:VHVkoIH2M >>351-352
宣言どころか文法的には実行文も書ける
もちろんまともなプログラマはそんなクソコードは書かない
https://www.jpcert.or.jp/sc-rules/c-dcl41-c.html
宣言どころか文法的には実行文も書ける
もちろんまともなプログラマはそんなクソコードは書かない
https://www.jpcert.or.jp/sc-rules/c-dcl41-c.html
356デフォルトの名無しさん (アメ MMb5-FdCK)
2018/12/06(木) 19:39:02.33ID:rq0vzYZsM 初期化されないのかよ。
最初から禁止にしといてくれや…
最初から禁止にしといてくれや…
357デフォルトの名無しさん (アウアウウー Sa05-u1Zc)
2018/12/06(木) 20:21:33.67ID:2HZFttMva358デフォルトの名無しさん (アウアウウー Sa05-MnXc)
2018/12/06(木) 20:25:38.15ID:nzH90qpKa のようなもの
359デフォルトの名無しさん (ワッチョイ 31b3-EBCi)
2018/12/06(木) 20:45:48.14ID:TUEVaed40 構文やや変数キャプチャの問題はさておき、関数ポインタは原始的なクロージャっぽく使えるよね。
こんなん書いたらクロージャ原理主義者が反論しそうだけど。
こんなん書いたらクロージャ原理主義者が反論しそうだけど。
360デフォルトの名無しさん (アウアウウー Sa05-MnXc)
2018/12/06(木) 20:49:35.87ID:nzH90qpKa 苦労者
361デフォルトの名無しさん (ワッチョイ 4b23-u1Zc)
2018/12/06(木) 21:11:52.76ID:qetyDFhY0 GNU拡張だと関数の中で関数定義できたっけ。
362デフォルトの名無しさん (スププ Sdb3-BEmb)
2018/12/06(木) 22:27:01.40ID:RVfmRZI1d C言語勉強してます。
エラーにOBJが開けませんってでるんだけど、どうしたらいいか教えてください。
コンパイラーはbcpadです
エラーにOBJが開けませんってでるんだけど、どうしたらいいか教えてください。
コンパイラーはbcpadです
363デフォルトの名無しさん (ワッチョイ db9f-ZeM3)
2018/12/07(金) 02:34:07.16ID:4kVuFzeP0 bcpadって、懐かしい響きだな。
古すぎてなにか特別な理由がない限り使われなくなってるようなものだと思うんだが、なんでそれ使って勉強しようと思った?
古すぎてなにか特別な理由がない限り使われなくなってるようなものだと思うんだが、なんでそれ使って勉強しようと思った?
364デフォルトの名無しさん (スププ Sdb3-BEmb)
2018/12/07(金) 20:07:09.75ID:S1fEuKj1d 授業で使ったからこれでいいかなーって感じ、これといった理由ないです笑
最近はどんなコンパイラーが主流なんです?
最近はどんなコンパイラーが主流なんです?
365デフォルトの名無しさん (ワッチョイ 31b3-EBCi)
2018/12/07(金) 20:26:20.52ID:RTzoABIk0 Lattice C
366デフォルトの名無しさん (アウアウウー Sa05-/enL)
2018/12/07(金) 20:32:40.15ID:F84vPdIda MSのVisual Stdioに入ってるVC++か、gcc か、clangだね。
bcpad使った事ないけど、それで使えるbccも地味に生き残ってて進化してた。
(久しぶりに見に行ったらフリーのは最新じゃないけど、地味に進化してた)
エンバカデロがまだインプレス(買収される前)だったり、ボーランド(社名変更前)だったりしてた時代のbccコンパイラ環境設定記事がまんま使えるはず。
bcpad使った事ないけど、それで使えるbccも地味に生き残ってて進化してた。
(久しぶりに見に行ったらフリーのは最新じゃないけど、地味に進化してた)
エンバカデロがまだインプレス(買収される前)だったり、ボーランド(社名変更前)だったりしてた時代のbccコンパイラ環境設定記事がまんま使えるはず。
367デフォルトの名無しさん (アウアウウー Sa05-MnXc)
2018/12/07(金) 20:55:30.39ID:qRyaIDL9a LinuxまたはWindowsのWSLのUbuntu等やCygwinの中でもgccが動く。Macでも中はUNIXなので動く。
368デフォルトの名無しさん (ワッチョイ 899e-ZtDu)
2018/12/07(金) 21:34:48.53ID:0/x3pMw+0 windowsならmsvc
unix、unixクローンならgcc
コレで十分
windowsでいちいちgccでコンパイルする必要なんかない
たまに確認に使う程度
unix、unixクローンならgcc
コレで十分
windowsでいちいちgccでコンパイルする必要なんかない
たまに確認に使う程度
369デフォルトの名無しさん (ワッチョイ 2b81-n9Ol)
2018/12/07(金) 21:58:04.56ID:b95DkfHn0 Windowsでネイティブに動かせるGCCもあるし、
無理してVC使わなくても良いと思う
無理してVC使わなくても良いと思う
370デフォルトの名無しさん (スププ Sdb3-BEmb)
2018/12/07(金) 22:33:44.42ID:S1fEuKj1d 今調べたらけっこうあるんだな、、
これのここがダメ!とかここが強み!とかあったら教えて欲しい🙏
これのここがダメ!とかここが強み!とかあったら教えて欲しい🙏
371デフォルトの名無しさん (アウアウウー Sa05-/enL)
2018/12/08(土) 02:14:28.50ID:5PBkTMHJa Winならmsvc(VC++)かなぁ。。。速いしVS入れれば個人用途に限りMFC(MSのC++ライブラリ)付きで無料で使える。
ただ、最新のC/C++への対応状況は多分一番対応が悪い。
つい先月見た限りでは、bccは地味に対応状況は良いので、Win32APIが付いてて最新のC/C++使いたいってのには一番環境整え易い。(setbccで一発)
Linux/Unix系はclangかな。
gccにはconio.hが無い。(msvc、bcc、clangにはある)
最新のC/C++対応状況じゃclangとgccが2強だけど、Win用にWin32APIは最初から付いてたか分からない。
WinでGUIするのに情報少なかったから、最新のC/C++の勉強にしか使ってない。
ただ、最新のC/C++への対応状況は多分一番対応が悪い。
つい先月見た限りでは、bccは地味に対応状況は良いので、Win32APIが付いてて最新のC/C++使いたいってのには一番環境整え易い。(setbccで一発)
Linux/Unix系はclangかな。
gccにはconio.hが無い。(msvc、bcc、clangにはある)
最新のC/C++対応状況じゃclangとgccが2強だけど、Win用にWin32APIは最初から付いてたか分からない。
WinでGUIするのに情報少なかったから、最新のC/C++の勉強にしか使ってない。
372デフォルトの名無しさん (ワッチョイ db9f-n9Ol)
2018/12/08(土) 05:48:44.85ID:xmV4OmOO0 conio ライブラリの ncurses を使った Linux 用の互換ライブラリはあるよ(多分UNIX系OSならLinux以外でも動くような気がするが)。
https://ja.osdn.net/projects/sfnet_linux-conioh/
ていうか conio と curses ライブラリの両方が存在する状態になってから30年ぐらい経ってるので既に世界中で互換ライブラリは作られてると思う。
UNIX系OSでconioが標準的なものとして取り入れられない理由はもっと昔から curses や termios があって根付いていたからだと思う。
後から出てきた MS-DOS 画面専用ライブラリを組み込む気になる人はあまりいなかったんだろう。
https://ja.osdn.net/projects/sfnet_linux-conioh/
ていうか conio と curses ライブラリの両方が存在する状態になってから30年ぐらい経ってるので既に世界中で互換ライブラリは作られてると思う。
UNIX系OSでconioが標準的なものとして取り入れられない理由はもっと昔から curses や termios があって根付いていたからだと思う。
後から出てきた MS-DOS 画面専用ライブラリを組み込む気になる人はあまりいなかったんだろう。
373デフォルトの名無しさん (アウアウウー Sa05-/enL)
2018/12/08(土) 08:04:27.69ID:5PBkTMHJa 助かった。
昔読んだ入門書に環境依存と書いてたけど、互換ライブラリあるんだね。
getch関数地味に使うのよ。
調べたらバッファオフしてから普通のgetchar使ってるのか。
そのままLinux流を覚えても良いかな。
どっちにしても良い機会だった。
有り難う。
昔読んだ入門書に環境依存と書いてたけど、互換ライブラリあるんだね。
getch関数地味に使うのよ。
調べたらバッファオフしてから普通のgetchar使ってるのか。
そのままLinux流を覚えても良いかな。
どっちにしても良い機会だった。
有り難う。
374デフォルトの名無しさん (ワッチョイ f14f-ZtDu)
2018/12/08(土) 10:14:50.43ID:+xxwdKok0 >>371
> WinでGUIするのに情報少なかったから、最新のC/C++の勉強にしか使ってない。
MFCなんて言ってるから少ないんだよ。それ、20年前の話だし。
MFC -> .NET(Forms) -> .NET(WPF) -> UWPか?もう一つくらい有った気もしたが。
『標準』への対応という意味では遅いけど、
そもそも標準が糞な所はMS独自拡張が行われているからそれなりには困らない。
最新のならC++11にはほぼ対応してたはずだし、「どれがいいですか?」なんて聞く奴には問題にならない。
まあ、お前らは最新の文法を使えることが腕前だと勘違いしているようだから、大問題なのだろうけど。
それも含めて自由にやればいいが。
Borland Builderは一時期Cをリードしたのは事実だが、今だに開発が継続されていたのは俺も今知ったレベル。
Borland信者でなければ普通は地雷扱いで使わない。
というか、win環境ならVS以外を考える意味がない。
無料でGUIのIDEなら第一選択肢がVSで、実際それで十分で終わり、のはず。
無駄なところで苦労したくなければ、とりあえずみんなが使ってる物を使っておけ。
> WinでGUIするのに情報少なかったから、最新のC/C++の勉強にしか使ってない。
MFCなんて言ってるから少ないんだよ。それ、20年前の話だし。
MFC -> .NET(Forms) -> .NET(WPF) -> UWPか?もう一つくらい有った気もしたが。
『標準』への対応という意味では遅いけど、
そもそも標準が糞な所はMS独自拡張が行われているからそれなりには困らない。
最新のならC++11にはほぼ対応してたはずだし、「どれがいいですか?」なんて聞く奴には問題にならない。
まあ、お前らは最新の文法を使えることが腕前だと勘違いしているようだから、大問題なのだろうけど。
それも含めて自由にやればいいが。
Borland Builderは一時期Cをリードしたのは事実だが、今だに開発が継続されていたのは俺も今知ったレベル。
Borland信者でなければ普通は地雷扱いで使わない。
というか、win環境ならVS以外を考える意味がない。
無料でGUIのIDEなら第一選択肢がVSで、実際それで十分で終わり、のはず。
無駄なところで苦労したくなければ、とりあえずみんなが使ってる物を使っておけ。
375デフォルトの名無しさん (ワッチョイ 81f2-Po2/)
2018/12/08(土) 10:22:20.61ID:eB2yg23l0 C/C++でFormsやWPFなんて使えないんだからしょうがないじゃん。
376デフォルトの名無しさん (ワッチョイ f14f-ZtDu)
2018/12/08(土) 10:26:03.56ID:+xxwdKok0 普通の人やMSの定義なら「使える」わけだが。
まあどう見ても平行線だからもういいが。
まあどう見ても平行線だからもういいが。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★8 [ぐれ★]
- 【外交】元台湾総統・馬英九氏、高市首相発言に「台湾を危険にさらす」台湾海峡の問題は「両岸の中国人が自ら話し合うべき」★2 [1ゲットロボ★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 [おっさん友の会★]
- 【芸能】俳優・野村宏伸 テレビドラマの制作費やギャラの現状訴え 「比べものにならない位、今は低くて…」 [冬月記者★]
- 【野球】大谷翔平、佐々木朗希、山本由伸らがWBC辞退なら広がる不協和音… 『過去イチ盛り上がらない大会』になる可能性も★2 [冬月記者★]
- 【国際】ロシアはすでに戦争準備段階――ポーランド軍トップが警告 [ぐれ★]
- 【悲報】自民党のヒゲ、外務省局長と中国高官の写真にブチギレwwwwwwwwwwwwww [834922174]
- 【高市売り】円安、止まらず!凄い勢いで暴落中。157円へ [219241683]
- おじゃる丸実況をするためのお🏡
- 麻生太郎、腹をくくる「日本国民が高市を総理に選んだ。であるならば最期まで支えるのが私たちの役目」 [329329848]
- 【日本終了】高市のせいで円、売られまくる【エーン】 [305926466]
- 【悲報】ヤフコメ民「中国が水産物を輸入禁止にするなら、日本国民向けに安く販売すればいい。中国依存から脱するべき」 [153736977]
