[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 03/03 02:10 / Filesize : 267 KB / Number-of Response : 1017
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者歓迎】C/C++室 Ver.100【環境依存OK】



1 名前:デフォルトの名無しさん mailto:sage [2016/11/06(日) 22:58:02.60 ID:dU5z27As.net]
エスケープシーケンスやWin32APIなどの環境依存なものでもOK。
ただしその場合、質問者は必ず環境を書きましょう。

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

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

前スレ
【初心者歓迎】C/C++室 Ver.99【環境依存OK】
echo.2ch.net/test/read.cgi/tech/1469177649/

543 名前:デフォルトの名無しさん mailto:sage [2017/03/31(金) 01:59:49.12 ID:OFYzpq31.net]
やべえなおい糞コードの臭いがプンプンしやがるぜ

544 名前:デフォルトの名無しさん mailto:sage [2017/03/31(金) 02:09:29.70 ID:DQgqVTGo.net]
>>526-529
ありがとうございます

今まではとりあえずget/setを書いてgetにはconstを付けとけば良いみたいな認識でしたが、
想定されるクラスの使われ方に合わせて適宜変更するべきでした

MyClassのようなget/setの分け方をすると、
sizePlus10のような関数やsetで不便になってしまうので、
constを付けないget/set共用のものにしてそれを通してアクセスさせるのが適切でした
( getData()でアクセスする場合、Data * const getData() const { /**/ } みたいな )
とても参考になりました

545 名前:デフォルトの名無しさん mailto:sage [2017/03/31(金) 11:52:48.85 ID:xItn/dk+.net]
>>531
くそじゃない方法をおしえて

546 名前:デフォルトの名無しさん mailto:sage [2017/03/31(金) 12:09:56.69 ID:c13jjk6+.net]
C#じゃないからないでしょ

547 名前:デフォルトの名無しさん [2017/03/31(金) 13:26:56.75 ID:CbPadW0u.net]
>>536
コピーは=使え
というだけの話

548 名前:デフォルトの名無しさん mailto:sage [2017/03/31(金) 13:38:11.94 ID:2wgHKgmk.net]
>>529
> メンバのコピーはpragma pack1でstructしておいてmemcpy
これ俺も理由知りたい

549 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/03/31(金) 17:24:06.64 ID:tvggMnLQ.net]
typedef struct MY_STRUCT
{
int ch;
} MY_STRUCT;

MY_STRUCT a,b;
a.ch = 0;
b = a; //代入できる

550 名前:デフォルトの名無しさん mailto:sage [2017/03/31(金) 19:17:35.19 ID:Xv9Etv1i.net]
>>529
> おまえは質問の意図を理解しよう

なんか無駄に上から目線だなぁ
って思ったら

> メンバのコピーはpragma pack1でstructしておいてmemcpy

単なる老害だったでござる

551 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/03/31(金) 19:19:25.80 ID:tvggMnLQ.net]
構造体の代入ができなかったのは大昔のことだ。



552 名前: ◆QZaw55cn4c mailto:sage [2017/03/31(金) 19:35:02.95 ID:BClOXWeK.net]
>>540
それ,K&R1 から堕落したよね

553 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/03/31(金) 19:40:25.86 ID:tvggMnLQ.net]
構造体定義を#include <pshpack1.h>と#include <poppack.h>で囲むのは、スピードよりもメモリー効率を優先するときにする。

554 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/03/31(金) 19:44:56.93 ID:tvggMnLQ.net]
あるいは構造体のレイアウトを分かりやすくするときにパッキングを指定する。

555 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/03/31(金) 19:46:22.60 ID:tvggMnLQ.net]
>>543
堕落ではない。進歩だ。

556 名前:デフォルトの名無しさん mailto:sage [2017/03/31(金) 19:49:13.63 ID:RKtYGe+y.net]
> スピードよりもメモリー効率を優先するときにする
20年くらい前まではそういう老人もいたね
今はメモリレイアウトを固定したい時にしか使わないけど

557 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2017/03/31(金) 19:58:28.84 ID:tvggMnLQ.net]
#pragma 直接指定は礼儀が悪い、昔のやり方だ。

558 名前:デフォルトの名無しさん [2017/04/01(土) 02:25:44.35 ID:m99QLuku.net]
メモリ効率だけの問題なら大抵の場合は順番入れ替えるだけで問題ないしな

559 名前: ◆QZaw55cn4c mailto:sage [2017/04/01(土) 07:47:47.79 ID:1ZzXEpHO.net]
>>546
サイズが無限にのびるかもしれないものをコピーするなんてだめだよ
昔はね,構造体はポインタを介してしかつかえなかったんだよ

560 名前:デフォルトの名無しさん mailto:sage [2017/04/01(土) 08:31:33.23 ID:AOt54aKT.net]
そうそう
スタックに自動変数とかも言語道断
全部staticじゃなきゃね

561 名前: ◆QZaw55cn4c mailto:sage [2017/04/01(土) 13:26:49.84 ID:1ZzXEpHO.net]
>>551
スタックに自動変数はあたりまえだよ‥static おじさん,じゃないつもりなんだが‥
構造体はポインタで扱うべきもので,実体をコピーするのはなるたけ避けたいね
C++ では void f(const C &arg) って,可能ならば const と参照の縛りをできるだけいれるよね,余計なコンストラクタを走らせないために

K&R1 は教育的な配慮に優れた実装だと思うんだ‥



562 名前:デフォルトの名無しさん mailto:sage [2017/04/02(日) 14:13:23.32 ID:SQNmFUeK.net]
SOCKADDRが一言

563 名前: ◆QZaw55cn4c mailto:sage [2017/04/02(日) 17:06:04.34 ID:XkKG9LQx.net]
>>553
手元のソースをみると
clientSocket = accept(serverSocket, (LPSOCKADDR)&clientSockAddr, &addrLen);
とか
if (connect(destSocket, (LPSOCKADDR)&destSockAddr, sizeof(destSockAddr)) == SOCKET_ERROR) {
とか,構造体のポインタを渡しているね
由緒正しき Berkeley socket では,構造体をコピーするなんて教育的ではない書き方は許していないよ

564 名前:デフォルトの名無しさん mailto:sage [2017/04/02(日) 17:31:42.61 ID:QFdfGGyb.net]
つまり>>553はK&Rおじさんにも劣る存在

565 名前:デフォルトの名無しさん mailto:sage [2017/04/02(日) 18:21:59.15 ID:XkKG9LQx.net]
K&R1 おじさん,と
K&R2 おじさん
は区別したまえ,若造

566 名前:デフォルトの名無しさん mailto:sage [2017/04/02(日) 19:26:19.28 ID:QFdfGGyb.net]
どっちも時代遅れの老人でしょ
K&Rなんて昔存在したという噂でしか知らない
万葉集とか古事記みたいなもの?

567 名前:デフォルトの名無しさん [2017/04/02(日) 20:22:15.39 ID:II71H9Zi.net]
func1(a, b)
  int a;
  long b;
{
}

568 名前:デフォルトの名無しさん mailto:sage [2017/04/02(日) 22:22:37.63 ID:JMz4l+Qd.net]
> &destSockAddr,
> sizeof(destSockAddr)

由緒正しきBerkeley Socketも昔はこういう書き方したな
コイツは進歩が20年前で止まってるのか
今この書き方する奴は死刑でいい

569 名前:デフォルトの名無しさん mailto:sage [2017/04/02(日) 23:11:21.74 ID:zmcqSa2a.net]
便乗で申し訳ないが、値渡し、参照渡し、ポインタ渡し、の話で
ポインタ渡しといっても、C++の場合はナマポは嫌われて、スマポを使いましょう
ってことになっていると思うんだけど、これはどう渡すのが普通?
スマポを値渡しするのか、参照渡しするのか
はたまたスマポを剥いで、ナマポで渡すのか
個人的に統一しきれないっつーか
所有権やら生存期間やらリソース管理やらが関係してくるなら
スマポで渡すI/Fじゃないとまずいだろうし
逆にそういうのが関係ないなら、スタック上の自動変数を渡したいとかも考えると
ナマポで渡すI/Fのほうが都合が良かったり、どーなんだろ
一度ナマポに戻すと二度とshared_ptrに変換できないって制限がね
言語側でなんとかせずに、ライブラリで解決しようとした弊害かな
ちょうどよいバカよけなんかも知らんが

570 名前:デフォルトの名無しさん mailto:sage [2017/04/02(日) 23:13:25.39 ID:6tq4Ne3Z.net]
参照一択

571 名前:デフォルトの名無しさん mailto:sage [2017/04/02(日) 23:24:57.32 ID:xNqaI0VS.net]
>スマポを値渡しするのか、参照渡しするのか
>はたまたスマポを剥いで、ナマポで渡すのか
スマポの値渡しと生保は使い分けが必要だが、スマポの参照渡しだけはアホの所業。
とスコットメイヤーが言っていたような



572 名前:デフォルトの名無しさん [2017/04/02(日) 23:43:46.05 ID:yhAnz0vw.net]
>>560
shared_ptrはその名の通り所有権を共有する場合のみ使うもの
で、そういう場合は値渡しでもいいよ。中でmoveすれば
所有権を共有しないなら、nullptrを許容するならナマポそうじゃないなら参照
あんまり無いけど所有権を渡した先に移動させるならunique_ptr

573 名前:デフォルトの名無しさん mailto:sage [2017/04/02(日) 23:58:32.77 ID:TsXu0WT4.net]
所有権渡したくないならunique_ptrで持っている呼び出し元がgetでナマポを渡すかdereferenceして参照渡すかだな

574 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 00:00:55.90 ID:Jbp2gIKE.net]
ナマポで渡してもshared_ptrを再取得する方法はあるだろ
まあ前提がいるが

575 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 00:34:15.74 ID:qQvnlfYK.net]
うむむ、なるほど
ポインタらしき物にこれだけ多くの種類があってI/Fで縛ってしまうのは
一見面倒そうで、最近の流行というか静的型言語的には
型安全と見るべきなんだろうかしら
安易なGC言語より良いかもしれん、単純に情報量は多い
また一つC++が好きになった
うっかり循環参照したら怖いとか
コンパイラのバージョン違いでSTLやmallocの実装に
差異が有ることを前提に組まなきゃならないとか、玉にキズもあるけれど

576 名前: ◆QZaw55cn4c mailto:sage [2017/04/03(月) 06:55:53.48 ID:VwtRd/3a.net]
>>559
C/C++ で生書きするなら今もおなじだよ

577 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 07:40:50.83 ID:dyU+EMvQ.net]
型に対してじゃないのに括弧つけるの?

578 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 08:48:24.23 ID:WaUkCV9r.net]
そこはインデントや{}の位置が人によって違ったりするアレだろ

579 名前: ◆QZaw55cn4c mailto:sage [2017/04/03(月) 19:32:41.84 ID:VwtRd/3a.net]
>>557
K&R2 は C89 準拠だよ‥C89 が時代遅れだというけれども,いろんなことは C89 のときからやってきていて,C99 で追認された,というだけだよ

580 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 20:29:22.04 ID:5hra1L5C.net]
>>570
あいわかった
お前は今後「K&R1おじさん」(略して「K&Rおじさん」)な
どうせ定数defineや関数マクロまみれなんでそ

581 名前: ◆QZaw55cn4c mailto:sage [2017/04/03(月) 21:53:46.44 ID:VwtRd/3a.net]
>>571
略しないほうがいいよ‥
K&R2 おじさん=C89 はまっとうなCer, K&R1 おじさんは時代遅れ,この二つは全然違うよ



582 名前:571 mailto:sage [2017/04/03(月) 22:02:42.26 ID:ldINtwle.net]
>>572
つまりお主(K&R1おじさん)は
K&R2おじさんが自分と一緒くたにされることを
申し訳ないと感じてるのだな!?

(>543)
> それ,K&R1 から堕落したよね

(>550)
> サイズが無限にのびるかもしれないものをコピーするなんてだめだよ

(>552)
> K&R1 は教育的な配慮に優れた実装だと思うんだ‥

583 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 22:14:40.64 ID:Vb9tETQW.net]
voidを返す関数には感心したな

生成されるコードは大して変わらないかも知れんけど

584 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 01:00:11.73 ID:jC2xfRDP.net]
関数プロトタイプを除けば、K&R1で十分かもしれないな
voidを返す関数? int でいいんだよ

585 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 15:11:19.04 ID:AeH3x9f/.net]
戻り値をどうするかはcallerの勝手だからな

586 名前: ◆QZaw55cn4c mailto:sage [2017/04/04(火) 19:47:09.26 ID:xNF4clmU.net]
>>575
確かに関数プロトタイプは有用だね,これがないと結構ミスるかもしれないね
void を返す関数?int でいいんだよ []
[ここ壊れてます]

588 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 20:27:50.00 ID:/PIYb7TP.net]
int funca01(...);
int funca02(...);
int funca03(...);

589 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 23:08:17.42 ID:YUY8Mb54.net]
老人は意味とか概念を理解しようとしないから嫌
「bool? intでいいだろ」
「forループ?本質はgotoと同じ」
「enumなんてintでいいだろ」
ホントもう存在が害悪

590 名前:デフォルトの名無しさん mailto:sage [2017/04/05(水) 00:33:27.19 ID:DVg/5L4N.net]
>>550
何が「昔はね」だよw
Qちゃんその当事Cなんて触ってなかったろ?
アンタ最近(たかだか数年?)プログラミングで遊び出しただけの人でしょ

591 名前:デフォルトの名無しさん mailto:sage [2017/04/05(水) 02:38:54.31 ID:ZJf7oEgw.net]
>>579
「static const intなんてenumでいいだろ」
こうですね



592 名前:デフォルトの名無しさん mailto:sage [2017/04/05(水) 04:30:52.52 ID:ni2ET+sb.net]
奴らは#defineだ

593 名前:デフォルトの名無しさん mailto:sage [2017/04/05(水) 08:14:48.69 ID:Bh5NPBNH.net]
マジックナンバー直書きでしょ

594 名前:デフォルトの名無しさん mailto:sage [2017/04/05(水) 08:19:06.54 ID:qVk1sCwA.net]
K&Rだと〜
c89だと〜
過去の異物がまだ現役だと信じて話してけるのがうざい

595 名前:デフォルトの名無しさん mailto:sage [2017/04/05(水) 09:06:55.68 ID:ncDYJBnp.net]
それ言うならC自体が。
いまさらC++と互換性のないCを選ぶ理由がない。

596 名前:デフォルトの名無しさん mailto:sage [2017/04/05(水) 10:35:04.67 ID:k0RY104y.net]
>>585
C++と互換性のないCってどんなの?

597 名前:デフォルトの名無しさん mailto:sage [2017/04/05(水) 19:40:11.14 ID:IM5122PI.net]
ベターC的な所全般だな
範囲forとか2進リテラルとかスレッドライブラリとか参照とか
Cにはnullptrすら無いし細かいところでは条件演算子が右辺値とか
ようするに別言語
オーバーロードに対するtgmathとかもう糞の臭いしかしない

598 名前: ◆QZaw55cn4c mailto:sage [2017/04/05(水) 19:44:22.68 ID:bDXscs5n.net]
>>585
たしかに,C99 の数々の改悪は C++ との互換性を考慮していない悪手の連発,ほとほと困ってしまう

>>584
C++ とほどほどの交換性のある C89 が最良だよ

599 名前: ◆QZaw55cn4c mailto:sage [2017/04/05(水) 19:46:32.21 ID:bDXscs5n.net]
>>580
「K&R1 は構造体は基本的にポインタでしか扱えない」制限なんて,使ってもいなかったらわからないだろう?

600 名前:580 mailto:sage [2017/04/05(水) 20:02:06.85 ID:DVg/5L4N.net]
え?Qちゃんてサンデープログラマじゃないの?
職業プログラマでもないし
プログラミング暦せいぜい10年未満だと思ってた

601 名前: ◆QZaw55cn4c mailto:sage [2017/04/05(水) 20:07:28.87 ID:bDXscs5n.net]
>>579
>「forループ?本質はgotoと同じ」
そんなことはいわないとおもうよ,K&R1 の時代から for はあるしね
きがつくと for(;;) { } と break だけで書いてたりするのはあるかもね,while 使いにくいとか,do while なんかマクロの中でしかつかわない,とかさ

enum?
#define でいいとおもうよ‥



602 名前: ◆QZaw55cn4c mailto:sage [2017/04/05(水) 20:08:45.69 ID:bDXscs5n.net]
>>590
サンデーだよ
でも長いサンデーなんだ‥

603 名前:デフォルトの名無しさん mailto:sage [2017/04/05(水) 21:26:45.75 ID:Kw8eDt7v.net]
ニートじゃ分からんことも多いのでは

604 名前: ◆QZaw55cn4c mailto:sage [2017/04/05(水) 22:05:58.72 ID:bDXscs5n.net]
たしかにそのとおりだが,K&R2 = C89 こそ必要十分,ということはわかるよ

605 名前:デフォルトの名無しさん mailto:sage [2017/04/05(水) 22:10:26.67 ID:mGFW5fgT.net]
そういうこと言ってるとそのうち技術についていけなくなるよ

606 名前:デフォルトの名無しさん mailto:sage [2017/04/05(水) 22:22:23.34 ID:ncDYJBnp.net]
C99やC11って、新しい技術とかそういうんじゃないじゃん。

607 名前:デフォルトの名無しさん mailto:sage [2017/04/05(水) 22:40:44.77 ID:mGFW5fgT.net]
規格

608 名前:デフォルトの名無しさん mailto:sage [2017/04/06(木) 10:47:58.81 ID:jz0x7tjm.net]
企画ものは好きじゃないからな

609 名前:デフォルトの名無しさん mailto:sage [2017/04/06(木) 16:35:26.64 ID:w+UX2Wix.net]
ころころ変わるんだから最新もクソも無いわけだが

pakomamaはガチらしいな

610 名前: ◆QZaw55cn4c mailto:sage [2017/04/06(木) 20:02:44.92 ID:Uar4T1Gl.net]
>>595
別についていけなくてもいいよ,その殆どは自分には要らないものだから
それはそうと,これは!とおもう新しい技術って最近はどんなものがあるの?

611 名前:デフォルトの名無しさん mailto:sage [2017/04/06(木) 20:16:13.94 ID:kFToYptL.net]
まず、C#のasyncだのawaitだのはC++にも欲しいところ
というか、取り入れる方向で議論していたような
どのみちQZには使いこなせない機能だから知らなくてもよいけど
知れば発狂することだろう



612 名前: ◆QZaw55cn4c mailto:sage [2017/04/06(木) 20:21:15.74 ID:Uar4T1Gl.net]
まずC#をやらないとね‥でも Java に走ってしまった‥Java に同じようなのはないの?

613 名前:デフォルトの名無しさん [2017/04/06(木) 22:33:11.66 ID:Ao1zg6OQ.net]
>>601
coroutineの事なら根本的な所が違うから勘違いしないようにな

614 名前:デフォルトの名無しさん mailto:sage [2017/04/07(金) 20:08:34.35 ID:cdWiLUH2.net]
馬鹿の特長:目的/機能の違いと実現するための実装の違いの区別がつかない

615 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 12:56:12.29 ID:TFmwEDa6.net]
C#のawaitはGUIのスレッドを意識出来るので有用だが
C++のawaitはただ裏で走らせるだけの機能的には劣化版な気がしてならない

616 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 13:14:20.88 ID:bfo0YVHI.net]
>>605
c++で標準的なgui使うとすると何になるの?

617 名前:デフォルトの名無しさん mailto:sage [2017/04/08(土) 13:49:52.49 ID:xnWSKOe7.net]
>>605
そりゃ C++ と C# のポリシーの違いだろ

618 名前:デフォルトの名無しさん mailto:sage [2017/04/09(日) 22:32:13.26 ID:nTEmq1X3.net]
C使ってる人で変数宣言を途中に書く人いる?
やめた方がいい?

619 名前:デフォルトの名無しさん mailto:sage [2017/04/09(日) 23:00:21.55 ID:gthRNL4S.net]
むしろそうして欲しいかな
勿論ブロックスコープは意識してる前提で

620 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 09:11:56.63 ID:ezi5K97R.net]
初期のCはブロック先頭しかコンパイルが通らない
コンストラクタも型推論もないのに途中に置くメリットが少ない
初期化漏れというモンスターの隠れ家になりやすい

621 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 10:33:55.73 ID:L6e5ZQwW.net]
一応Cで書くときは関数ブロック直後に書いてるけど、それはそれでforで使うiとかを使い回す事になるから、C++みたくプログラマの良識を信じて(ブロックを意識して変数宣言すると信じて)、好きな場所で宣言出来た方が正解なんだろうな。



622 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 10:35:17.63 ID:L6e5ZQwW.net]
出来た方がと言うか、今は出来るんだから、した方が正解に訂正。

623 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 12:59:25.70 ID:Hdztr2ik.net]
出来ることと乱用していいことはイコールでない
一瞬だけの一時変数を直前で宣言するのならありだけど
関数全体で使うなら頭で宣言すべきだし、そもそも中間で宣言するような長い関数は
短くなるよう見直すべき

624 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 13:04:43.28 ID:xSRtCFhF.net]
魔法の言葉
ケースバイケース

625 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 19:32:18.15 ID:UiWlchtO.net]
スコープは可能な限り狭く

おじいちゃんの遺言

626 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 19:38:55.23 ID:PNQsiXg9.net]
初期化漏れはブロック先頭でしかかけない方が起こしやすいだろう

長い範囲で使う変数でも、変数ははじめて使うところで宣言した方が分かりやすいしバグも減る。

627 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 20:04:35.98 ID:Z/bjVn5R.net]
初期化忘れ防止はどこで宣言したってあんま関係ないというか
大差ないだろうな実際
必要になった時点で宣言するってことでよいと思う
さもないと上手くいかない場合もあるし
いちいち使いもしない「ダミーの値」で初期化するのは馬鹿らしいし
余計にバグりそう

628 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 20:13:31.25 ID:Z/bjVn5R.net]
auto result = func();
まぁこういう風にしたいわな

int result = 0;
・・・
result = func();
↑その「0」って初期化値は何なんですか、何を意味した「0」なんですか
では0の代わりに1で初期化したらどうなるんですか
この初期化値の意味は一体何なんですか
ってことになるしな
結局「0」とか「1」とかの初期化値はダミーでありプログラム上なんの意味もなかったりするし
逆に初期化値に意味がある場合もあるから余計にややこしくなる
bool flag = false;
if( func() )
{
  flag = true;
}
これらを区別したいから必要になった個所で宣言に一票

629 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 21:45:43.28 ID:spQE74XB.net]
老人の「昔は良かった」を見て顔真っ赤にして論破しようとマジレス
みっともない

630 名前:デフォルトの名無しさん mailto:sage [2017/04/14(金) 23:47:26.34 ID:9eRQSDOY.net]
必要なものを必要なときに宣言する
それだけの話

631 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 09:16:54.52 ID:RtikNDCG.net]
>>618
>この初期化値の意味は一体何なんですかってことになるしな

勝手に無駄な初期化しておいてどれだけ頭が悪いんだぜ
ぜんぜややこしくない
お前が馬鹿なだけ



632 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 09:26:22.77 ID:Af1/s0zG.net]
もともとが
初期化忘れを防ぐためには関数の先頭で宣言〜
への反論だったからだぜ

633 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 09:41:32.48 ID:RtikNDCG.net]
>622
日本語もわからないチンパンは無理して
コンピュータ使わなくても
祖国でオナニーしてればいいんだぜ

634 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 09:50:31.14 ID:Af1/s0zG.net]
君の疑問がどこにあるのか本当にわからないからどうでもよい

635 名前:デフォルトの名無しさん mailto:sage [2017/04/15(土) 10:02:51.76 ID:Af1/s0zG.net]
それでもヒントとして>>610への反論だったということだけは言っておこうか
「途中で宣言すると初期化もれしやすい」という風なことが書いてあるが
逆に>>610は何故、先頭で宣言したら初期化漏れしにくい、と考えたか
どういったコードを想定しているかってことだな
要するに>>610はブロックや関数の先頭だけ見れば初期化漏れしていることが直ぐわかると便利だね
って言いたいんだろうけど、それはどういうコーディングルールの元に言えることか
ということだな

636 名前: ◆QZaw55cn4c mailto:sage [2017/04/16(日) 17:51:30.33 ID:3PeEvH/A.net]
for(int i = ...; ; ) が書けるようになったのは素直にありがたいな,と感じている

637 名前:デフォルトの名無しさん mailto:sage [2017/04/23(日) 23:52:45.18 ID:IUq/7GPJ.net]
>>626
脳の進化が20年前で止まったチンパンはc89でも使ってろ

638 名前:デフォルトの名無しさん mailto:sage [2017/04/24(月) 20:45:20.10 ID:et30sNFg.net]
うきー

639 名前: mailto:sage [2017/04/25(火) 04:20:41.84 ID:Vqnsayjn.net]
>>627
C99 or later で便利になったことなんて,そんなにないんだよね‥

640 名前:デフォルトの名無しさん mailto:sage [2017/04/25(火) 06:08:12.88 ID:X14wy5zc.net]
数値計算とか特殊用途なライブラリ追加ってイメージ。
そりゃ、手間の割に汎用性がなかったら対応コンパイラも出てこないわ。

641 名前:デフォルトの名無しさん mailto:sage [2017/04/25(火) 22:55:58.60 ID:EbISA0IE.net]
インライン関数も行コメントもboolもrestrict も無しで
どうやってプログラム書いてんのか想像もつかない
snprintf無しとか無理ゲーだろ



642 名前:デフォルトの名無しさん mailto:sage [2017/04/26(水) 02:18:40.34 ID:Kw1ZNGm3.net]
restrict無しが想像つかないってどういうことだろ

643 名前:デフォルトの名無しさん mailto:sage [2017/04/26(水) 09:07:13.88 ID:bRGeq+mw.net]
restrict使ったことないなあ
大きく最適化されるの?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<267KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef