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

■ このスレッドは過去ログ倉庫に格納されています
2018/12/28(金) 06:04:52.38ID:ufThBpcD
エスケープシーケンスやWin32APIなどの環境依存なものもOK
そのような質問は必ず環境を書きましょう
半角空白やタブでのインデントはスレに貼ると無くなります

コードを貼れる所
http://codepad.org/
https://ideone.com/

前スレ
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/
2019/02/18(月) 01:27:51.06ID:ViRlfcsh
C++ の auto は右辺と一致させるように推論するだけの単純機構で、
ややこしい演算で推論するわけではないので、
コンパイル速度ではほとんど差はないと思うよ。
2019/02/18(月) 01:30:04.86ID:tKsXQ0K5
autoはむしろコンパイル速くなるんじゃない?
いちいち型を解決せずとも、既に解決済みの型を右から左へコピーするだけでいいんだから
C++でコンパイルを速くするのは簡単で、単純にソースファイル数とインクルードするヘッダを減らせばいい
C++のコンパイルが遅いのは主にコンパイル単位という時代遅れで極めて非効率なコンパイル戦略に起因しており、実はコードの複雑さ自体はわりとどうでもいい
2019/02/18(月) 01:31:11.50ID:aN2QSVsl
>>496
C++を言語として選択した時点で「記述の時間やコンパイル時間を投資して実行時間を稼ぐ」という思想なのでは?コンパイル時間を短くする努力はする気がないと思います
2019/02/18(月) 01:32:21.67ID:aN2QSVsl
>>498
>いちいち型を解決せずとも、既に解決済みの型を右から左へコピーするだけ
この記述はコンパイル時を想定しているの?それとも実行時を想定しているの?
はっきりさせたいので念のために確認します
2019/02/18(月) 05:41:12.34ID:KTgkm+s5
>>490 サーバーの 503 エラーに引っかかって昨日のうちに書けなかったんだが…。

>>491 の方法だと Enter が単純に読み捨てられて scanf() が終了せず
まだ入力をよこせと言ってくるからダメみたいね。

11 22 33 (Enter) だと読み込みが継続、期待通りに動作しない
11 22 33 x (Enter) なら x を解釈する時点で scanf() が 0 を返してループ脱出


先に文字列として1行読み込んで sscanf() と思ったけど…
ndat = sscanf(s, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d",
&num[0], &num[1], &num[2], &num[3], &num[4], &num[5], &num[6], &num[7], &num[8], &num[9],
&num[10], &num[11], &num[12], &num[13], &num[14], &num[15], &num[16], &num[17], &num[18], &num[19]);
実際に読めた値の個数は ndat に入る。
これは書くのもメンテナンスするのも嫌だなぁ。

strtol() で1個ずつ数値を拾いつつ、地道にポインタ進める方が良いかも。
2019/02/18(月) 05:53:27.02ID:KTgkm+s5
>>500 自分は >>498 の人じゃないけど。
ごく簡単な場合ながら、例えば
int val_a = func(para); // func() がint互換の値を返すかチェックが必要
auto val_b = func(para); // func() の返す型そのまんまで val_b を作ればいい

てな具合に考えると auto で定義した方がコンパイル時の手間が少ない、
という考え方にも一理あるかと。
2019/02/18(月) 08:39:38.41ID:KTgkm+s5
瑣末なことだけど val_a, val_b って変数名は良くなかったね。
変数 variable の例なんだから var_a, var_b だわな。
というか、この場合は a, b で十分だ。
2019/02/18(月) 10:06:03.91ID:PGieQvh3
まず計測しろよ
505491
垢版 |
2019/02/18(月) 13:24:52.92ID:fHtoi1qq
>>501
ありがとう。ちゃんと確認してなかったわ。
タブに空白に改行はスキップしやがるんでしたか

別案としては fgets() ⇒ sscanf() になるんかな
2019/02/18(月) 13:29:17.97ID:fHtoi1qq
505の後半は無しで
1文字ずつ切り出して解析してったほうがよさそうね
507デフォルトの名無しさん
垢版 |
2019/02/18(月) 15:27:41.58ID:bbNHvPxv
コンパイル時間にリンク時間は含まれますか?
508デフォルトの名無しさん
垢版 |
2019/02/18(月) 15:28:58.14ID:bbNHvPxv
>>501
scanf は禁止

>>505 が正しい
2019/02/18(月) 15:34:26.17ID:c9cLPpQ7
人間の様な邪悪なものからの入力でscanfは使うなと、ばっちゃは言ってた
2019/02/18(月) 20:54:12.82ID:aN2QSVsl
>>502
>func() の返す型そのまんまで val_b を作ればいい
この発想は実行時なのでは?

>てな具合に考えると auto で定義した方がコンパイル時の手間が少ない、
実行時の発想をコンパイル時に適用していいのでしょうか?
2019/02/18(月) 20:54:41.05ID:aN2QSVsl
>>504
コンパイル時間を計測するのですか?…
2019/02/18(月) 20:57:23.82ID:aN2QSVsl
>>509
賛成です、そういうのは1ラインを秘術を尽くして何とか読み込み、後で sscanf() とかを使うべき
2019/02/18(月) 21:15:24.03ID:JRPNr6+t
>>512
今回の例(>>490) のように可能な限り %d で抜き出して打ち切るとなると sscanf 単発では面倒
なんとか行単位でバッファに詰めた後
連続空白などでトークンに区切ってそのトークン単位で sscanf をぶんまわすような
ほのかな中途半端感が
2019/02/18(月) 21:20:31.62ID:etvvcICH
>>510
別に実行時の発想じゃないでしょ
型を書けばコンパイラはその型名に対応する型を解決しなければならないし、
型変換の要否や可否のチェックも必要
2019/02/18(月) 23:19:20.43ID:aN2QSVsl
>>514
>型変換の要否や可否のチェック
これは10中8, 9 コンパイル時にすることなのでは?
2019/02/18(月) 23:37:20.44ID:Q29xkQ9H
>>515
初めからずっとコンパイル時間の話をしている。お前さんだけ噛み合ってないから、もう黙っててくれ。
2019/02/19(火) 15:32:09.41ID:Hz70ZqtS
C++です
インクルードガードがあっても関数の定義がヘッダに書かれていればヘッダが複数回読み込まれていた場合リンク時に多重インクルードでエラーが出る

ここまではわかるのですが、同じことをクラス関数で実験した結果エラーになりませんでした
具体的にはヘッダのクラス内に関数定義を書いて複数のファイルからインクルードしました
これはどういうことなのでしょうか?
518デフォルトの名無しさん
垢版 |
2019/02/19(火) 16:00:36.20ID:uP1odnYQ
>>517
クラス定義の中に書かれたメンバ関数の定義は
自動的にインライン関数になる(関数の実体の定義ではない)

この場合は、複数の場所にメンバ関数の実体が作られるわけじゃない、
という説明でどうかな。
2019/02/19(火) 17:19:54.69ID:BVj1SDNF
>>516
そもそも「実行時」「コンパイル時」の区別がついていないのでは、コンパイル時間の話なんかできないのでは?
だから「実行時」「コンパイル時」どちらを適用するかに執着しているだけです
2019/02/19(火) 17:23:21.85ID:Hz70ZqtS
>>518
なるほど
クラス内に定義を書くとインライン関数になって普通の関数としては扱われないんですね

もう少し理解するために調べたのですが、インライン関数は内部リンケージのみを持つものとしてコンパイラに解釈されるらしいですね
だからコンパイラはファイル間での関数の重複を調べようとしない
そしてインクルードによって複数のファイルで同じものを読み込んだとしてもエラーにはならないと・・・
理解です
勉強になりました
ありがとうございました
521502
垢版 |
2019/02/19(火) 17:39:36.16ID:uP1odnYQ
失礼、なぜか >>510 を見逃してて(黙殺するような意図はまったくなかった)。

C++ は関数を宣言・定義するときに返り値型を書くから
auto で受けてもコンパイル時に曖昧さは生じないと考えたんだけど。

実行時まで返り値の型が決まらない関数って作れるんだっけ?
これは純粋に質問、教えを乞いたい。
あんまり高度な話だと振り落とされるかも知れないけど。
2019/02/19(火) 17:48:52.81ID:h1wI7nx1
型推論が実行時に行われるとかトンチキこいてるやつが一人騒いでるだけ
2019/02/19(火) 18:43:18.16ID:+3biNeIC
>>521
おそらく君の書いた「func()の返す型〜」をqz某が勝手に勘違いしているだけだからスルーしていいよ。
初心者が必ずしも正確な用語を使わないことくらい想像つくだろうし、文脈からして普通ならそんな勘違いはしないはずなのだが。
2019/02/20(水) 00:20:40.27ID:C98K3aY7
>>521
出来ない。
強いて言えば C++17 からは std::any があるけれど、
これはこれで実行時に型が決まるわけではなくて
コンパイル時に std::any 型であることは確定する。
2019/02/20(水) 00:28:15.76ID:qDW9CRq2
>>520
> もう少し理解するために調べたのですが、インライン関数は内部リンケージのみを持つものとしてコンパイラに解釈されるらしいですね

どこにそんな嘘書いてあった?

https://timsong-cpp.github.io/cppwp/n4659/dcl.inline#footnote-94
> The inline keyword has no effect on the linkage of a function.
2019/02/20(水) 00:47:02.04ID:rsRaa5eC
>>525
IBMのサイトに書いてありました・・・
と思って今見返したらこれはIBMの統合開発環境のページなのでその開発環境の仕様かもしれないですね
失礼しました

https://www.ibm.com/support/knowledgecenter/ja/ssw_ibm_i_72/rzarg/inline_linkage.htm
>インライン関数は内部リンケージを持っているものとして処理されるので
2019/02/20(水) 09:09:52.38ID:qDW9CRq2
>>526
「C のみの始まり」〜「C のみの終わり」で囲まれているとおり、それはCの仕様だね。
2019/02/20(水) 19:50:21.82ID:P8vN2pc3
>>525
それは inline キーワードで束縛された関数は、inline 展開される多数の実体と、外部リンケージによって外部からコールできるものとで別の実体をコンパイラは作成する、ってことですか
まあ inline しまくって無駄にバイナリーを増やすくらいだったら、ついでに1 個の外部リンケージで呼べる実体を追加したって、いろいろな面で大差がない、とはいえますね
2019/02/21(木) 01:44:35.45ID:HXHB3ZEN
>>528
「それ」が何を指して言ってるのかよくわかんないけど、 inline 関数に対して
インライン展開されてない「実体」を生成するのもしないのもコンパイラの自由。

外部リンケージを持つ関数について複数のコンパイル単位でアドレスを取って
==, != で比較した場合には一致させないといけないので、アドレスを取られた場合には
そういうコード生成をするのが一般的だろうとは思う。
2019/02/22(金) 22:57:05.70ID:LZ/mWRas
引数や関数にはconstつけられるところは全部つけるべきですか?
2019/02/23(土) 00:51:14.65ID:CdF18mGW
つけて問題ないならつけるべきだけど、まあ実際は面倒くさくなければという程度…
2019/02/23(土) 10:37:02.21ID:6erMuDJl
>>530
内部で書き換えないポインタや参照の引数には必ずconstをつけるべき。より自己文書化されるし、付けてないと使う側の手間が増える。>>531は元javaプログラマ
2019/02/23(土) 10:39:40.19ID:Iy1q86mj
今は良いけど、半年後の自分は既に他人だと思わないと
534デフォルトの名無しさん
垢版 |
2019/02/23(土) 11:45:29.73ID:+DV3f+Dk
const連鎖まんどくせ
2019/02/23(土) 12:40:33.73ID:aRr2CtyI
530みたいな質問する奴はそもそもconst気にする前に関数が長すぎたり
参照と実値渡しの違いもわかってないと思われるのでその辺をしっかりやった方が良い。
2019/02/23(土) 17:32:16.44ID:7GKXwuwj
入門書の類が、最初のうちは const なしで説明しておいて、
本の後半でおもむろにポインタの引数に const つけることを
載せてたりするせいかもな。
高度な、マニアックな話題みたいな感じで。

文字列(charへのポインタ)を受け取る関数を紹介したら、
すかさず const char* の説明も合わせてすべきって気がする。

const の一般的な価値が分かれば、メンバ関数での func() const {...} の
ありがた味もすぐ飲み込めて const つけまくり派になるでしょ。
537デフォルトの名無しさん
垢版 |
2019/02/23(土) 21:02:55.45ID:kvfLWeS8
戻り値を const char* してても、
char* const してなければさほど意味がない。
2019/02/23(土) 21:20:57.14ID:JpeZVvP/
それは質問なの初心者君?
2019/02/23(土) 23:45:27.99ID:Z+wYSHT9
クソミソみたいなjavaのconstと違ってC++のconstは
コードの安全性を高めるのに必須といっていいぐらいのキーワード
とりあえず片っぱしから全部const付けて、どう頑張ってもここは
constはずさないと動くコードにできないよな・・ていうぐらいの
時だけはずす。このぐらいの気構えでコードを書けば、かなり安全な
コードになってる。他のやつが書きかえちゃダメなものをいじろうと
しても、強引なキャストでもしない限りどうやってもコンパイルが
通らなくなる。強引なキャストしてでも無理矢理強姦してくる強姦魔は
そもそも犯罪者気質なのでそんなやつに仕事をやらせてる時点で間違い
2019/02/23(土) 23:48:50.01ID:Iy1q86mj
「かなり安全な」

ここで思わず笑ってしまったではないか
2019/02/24(日) 00:00:52.25ID:qLJosHl4
残念ながらバカはmutable使い出すから無意味。
2019/02/24(日) 00:06:41.22ID:2wDVhIfR
俺は書換られたりはしない たぶんしないと思う
しないんじゃないかな ま、ちょっと覚悟はしておけ
2019/02/24(日) 00:47:53.06ID:ORSkBdqU
constっていちいち書くのめんどい
2019/02/24(日) 00:48:50.68ID:haqs87u6
>>537
何を言ってるのか分かりません
2019/02/24(日) 01:15:50.47ID:is7scwjD
いやまてまて・・このスレの99%はネタでできてるけど
そこ分からないのはダメだぞ
まさに初心者向けの話題ではある
2019/02/24(日) 07:21:28.17ID:kwD2lttR
>>541
mutable使ったらいかんのか
2019/02/24(日) 08:50:14.25ID:FFCpIhtq
こいつ能力低いなと思う奴のソースを見ると、
constなんて全く付いていない場合が多い
2019/02/24(日) 09:00:44.87ID:eyx8DEIH
>>543
ちょっとわかるわw
あと3文字くらいが良かった
2019/02/24(日) 09:02:28.69ID:zE1f0a65
cnst
2019/02/24(日) 09:40:01.37ID:4ommn3XM
constはキーボード入力の観点からはそんなに苦じゃない
stdとかarrayが割りと入力しづらい
左右均等に割り振られてると楽な感じ
2019/02/24(日) 09:57:22.91ID:FGRIaiAP
const char* a = "hoge";
const char* const a = "hoge";

の違いがわからんやつは死ねとよい
2019/02/24(日) 10:22:22.64ID:qLJosHl4
そんな違いを意識しないと読めないコード書く方がバカだと思う。
2019/02/24(日) 10:24:20.55ID:eyx8DEIH
(そんな初歩中の初歩でマウンティングドヤ顔して大丈夫っすか先輩)
2019/02/24(日) 10:37:36.70ID:haqs87u6
>>545
>>544のこと言ってるの?
>>537は、ポインタの指し先だけでなく、戻り値を格納する変数自体を定数にしなければさほど意味がないっていう主張だと理解したけど、合ってる?
ローカル変数を定数化したければ呼び出し元が勝手にやればいいし、戻り値をconst char*にする重要性に比べたらそれをする必要性なんてごく僅かで"さほど意味がない"なんてとても言えないと思うけど
2019/02/24(日) 12:08:33.20ID:6sZPiHms
>>551
ドヤ顔して噛むなよ
2019/02/24(日) 12:15:09.98ID:sIV9Z0cV
C++ってC言語の負の遺産を引き継いだ言語だろ?
constは廃止すべき
557デフォルトの名無しさん
垢版 |
2019/02/24(日) 15:05:59.28ID:uFOuUY9d
constみたいな糞どうでもいい些末なことより
配列のサイズとオーバーフローの管理を強化するべきだったんだよ
互換性捨てなきゃならんが
2019/02/24(日) 15:35:26.16ID:2tRfk65D
>>557
そこはCの負の遺産を引き継いだのではなく、可能な限り実行時オーバーヘッドを小さくする実装手段を提供するというCの基本スタンスを継承しただけだろう。それが負の遺産というなら他の言語の方が適切なんだからそれを選択すればいいよ。
C++を使いたく、ある程度の実行時オーバーヘッドが許容できるときはstd::vectorという選択肢があるけど、それじゃダメなのか?
2019/02/24(日) 16:47:00.15ID:RgZ/0jGo
>>556
const に関しては C++ で新規導入された仕様を ANSI C に逆輸入、
みたいな感じじゃなかったっけ?
そのせいか、定数としてconst変数を使えないとか中途半端になってる。
C++ が C の負の遺産を切り捨てるべきだったとしても、
const はその「C の負の遺産」の範疇に含まれないかと。

いずれにせよ、今さら言っても、現に存在する C++ はどうもならんよね。
そういう新プログラミング言語が出ても、それは C++ じゃない別物ってことで。
560デフォルトの名無しさん
垢版 |
2019/02/24(日) 16:57:30.90ID:2fcQjxFq
そういうのはDで良いと思う
2019/02/24(日) 17:18:54.78ID:NUlc6EOn
とりあえず数値以外はconst参照渡しが基本でおk?
2019/02/24(日) 17:34:26.40ID:qxqTarkR
>>557
at()使え。
>>556
constが負の遺産とか頭おかしい。
ドキュメントにこの変数は内部で変更しませんとか書くよりよっぽど楽だろ
2019/02/24(日) 17:36:09.20ID:gUJTdPsI
>>562
負の遺産だよ。
const キーワードを廃止して
デフォルトの挙動を const に出来れば
どれほど良いことか。
という意味で。
2019/02/24(日) 17:40:12.42ID:qxqTarkR
>>563
それなら同意するけど>>556にそんな意図はないでしょ
2019/02/24(日) 17:43:09.22ID:gUJTdPsI
>>564
皮肉っぽい言い回しをしてみたかっただけ。
2019/02/24(日) 17:48:01.19ID:qxqTarkR
いやん
2019/02/24(日) 18:48:30.19ID:qLJosHl4
そこまで挙動を変えるなら別言語でやれば良いし、実際rustとか他の言語としてあるだろ。
2019/02/24(日) 18:53:22.05ID:2wDVhIfR
使わないで済ませる事ができるなら、使わないで置く方がうまく行く
569デフォルトの名無しさん
垢版 |
2019/02/24(日) 19:20:28.43ID:iK4D+UQi
>>563

>>567 も書いてるけど、それ何てRust?と思った。
2019/02/25(月) 01:48:46.07ID:LzC1voP1
負の遺産でも互換性とのトレードオフだしな。
いいことばかりじゃないけど、悪いことばかりでもない。

とりあえず const は付けれるだけ付けとけというのが
ベストプラクティスだと思う。
2019/02/25(月) 12:52:11.08ID:y5m/9TYH
>>563
引数だけなら同意してもいいけど変数はどうするんだ?
for(variable int i = 0; i < 10; i++){
とかはあまり書きたくないぞ
2019/02/25(月) 13:56:12.72ID:LzC1voP1
>>571
まあそこはもしもの話だから。
最初から const なら文法もそれに
沿ったものになってただろうさ。
2019/02/25(月) 17:39:50.14ID:ubojwQhV
確かに、関数内で作ったローカル変数だけデフォルト変更可能、
他所から持ちこんだ、ポインタの先や参照、グローバル変数へのアクセスは
基本的に読み出しのみ許可で、明示した場合だけ変更できる、なら
「勝手に書き換えたのは誰だ!?」ってバグは減りそうだね。
2019/02/25(月) 18:51:13.68ID:y5m/9TYH
>>573
ああ、それなかなかいいかも
2019/02/25(月) 20:42:12.40ID:lqvZQt+c
そうそう、だから普通にC++書いてる人は
とりあえず引数に全部 const つけるでしょ
それはそういうことだよ
2019/02/25(月) 20:44:41.85ID:x+rkal0w
引数じゃなく method の const は後悔することがちょいちょいと

class foo {
public:
void method() const;
};
2019/02/25(月) 20:50:25.72ID:1EOktSCH
constつけときゃいいってのもなんか胡散臭い印象しかないな。
そんなことよりも変更や生成を行う場所、タイミングを局所化するってのが本質だと思うが。
2019/02/25(月) 20:56:50.13ID:LzC1voP1
const が必要なところに付けるって考えるよりは
const では駄目なところでは外すという考え方の方が
安全っぽいという話であって、
適切に使い分けろというのは大前提のことだってことは補足しておく。

const が当たり前だって気持ちになると
変更が必要な個所は自然に局所化されるでしょ。
2019/02/25(月) 21:58:02.00ID:rMTHv0xs
const連鎖くらったらほどほどでいいやと思うようになる
2019/02/25(月) 22:14:33.44ID:1EOktSCH
なんというかもう修正が一切されないコードしか想定してない印象を受ける。
2019/02/25(月) 22:37:43.55ID:rMTHv0xs
やりすぎオブジェクト指向といっしょで
事故起こりにくいとこでこだわっても変更に弱くなるだけ
2019/02/25(月) 22:51:58.14ID:ki6l711j
複雑怪奇で理解不能にしておくと、
変な改造されないで済む
2019/02/26(火) 00:51:25.18ID:wcHiR3Ib
初心者で申し訳ないんですが、c/c++を学ぶため何か作りたいのですが、cで作る意味のあるいいお題はないでしょうか。JavaやC♯、rubyは一通りかける感じですがcはmallocなど知ってはいても使ったことはないレベルです。よろしくお願いします!
2019/02/26(火) 01:02:30.50ID:Ujo6lghI
>>583
ビットマップ画像を読み込んでブラーをかけてビットマップ画像として出力
2019/02/26(火) 01:30:28.38ID:azIRgqwp
>>583
いきなり「実務的な」プログラムを書くのはオススメしないよ。
C/C++ には歴史的経緯によってクソな落とし穴と「未定義」がたくさんあるので、
たとえ期待通りに動いたとしても正しくないプログラムであることは多い。
初心者向けのしょうもない (他の言語でやる入門と大差ないような) 題材で小さなプログラムを書いて
ブログとか Qiita とかに書いておけばベテランがよってたかって指摘してくれるさ。
そういうので基本的な落とし穴くらいは理解してから進んだ方が良いと思う。
2019/02/26(火) 01:35:07.18ID:F6jD76wH
HDDの中を検索するプログラムとか、整理するプログラムとか
こういうのがあったら便利だなっていう物を考えて作ってみる
途中分からなくなったら、ここに相談に来ると良い
親切な人が教えてくれる、かもしれない
あてにはしないこと
2019/02/26(火) 01:49:53.01ID:2prSgTvN
おっさんらジイさんらの世代だと
「こういうのあったら便利だよな」と思って作りはじめるパターンは有効だったけど
今はそういうの探したらほとんどあるからある意味不幸だよな
しかも自分で作ってたらとてもここまで作ってるヒマないっていうぐらい高機能なのが多いし
2019/02/26(火) 01:50:17.99ID:wcHiR3Ib
>>584
>>585
>>586
ありがとうすごく参考になりました。デスクトップランチャーとかほしいと思って作るならWPFだし、Cで実用的なほしい物ってむつかしいんですよね。初心者向けの小さなプログラムは上記のブラーとかでしょうか?Cで書く意味がある題材ってわからなくて。。。
2019/02/26(火) 01:59:04.98ID:H+xdnOpD
>>588
そもそも自分がC/C++を身につける意味があるかというとこらから見直した方がいいのでは?
直ちに必要な訳ではないが将来的に身に付けたいというなら、先に他の人が言っていたようにいきなり実用的なプログラムから入るより練習問題レベルの小品をコツコツ作っていった方がいいと思う。
2019/02/26(火) 02:00:19.43ID:azIRgqwp
どうしても自分が欲しくて既存のものがないってケースでも、
既存のものをバッチファイルで繋げればできるって程度のものだったりするもんな。
そういう意味じゃ、日常ではスクリプト言語の方が使うことが多いとは思う。
俺が一番最近に書いた C のプログラムもスクリプト言語の拡張パッケージだし。
2019/02/26(火) 02:19:19.20ID:F6jD76wH
>>588
例えば容量の大きなHDDだと、同じファイルが複数場所にあったりするじゃない?
そういうのを見つけて、チェックした後削除すれば容量節約という実利もあるよ
2019/02/26(火) 02:22:08.89ID:azIRgqwp
>>588
C/C++ で書く意味ということに最初は拘らなくてよいと思う。
こだわらなくてもプログラムの構成の仕方、書き方には確実に違いがあるから、
むしろ比較しながら学んだ方がいいかもしれない。
2019/02/26(火) 02:40:55.07ID:OTQ63qDn
C/C++使う必要性がわからないならやらないのが正解
今だにこんなクソ言語使ってるのはそれしか選択肢がないから
あるいは物好きな言語マニアか
2019/02/26(火) 03:33:39.99ID:belfWXD5
先に他の言語やらんとC++の必要性はわからんと思う
595588
垢版 |
2019/02/26(火) 08:48:58.01ID:+14u2RP+
こんなにレスもらえると思いませんでした、他の言語スレや板だともっと殺伐としてます。。。ありがとうございます。
低レイヤを高速で処理できるのが魅力だと思うので最終的には任意のパケットを送受信できるデーモンを作りたい。ので、>>591のいう同名ファイル検索デーモンから始めようと思います。
2019/02/26(火) 09:06:06.17ID:OTQ63qDn
ならechoサーバーから入ってhttpサーバーという定番ソケットプログラミングコースもおすすめ
まぁでもその検索デーモンとやらでファイルの扱い勉強してからでいいだろうな
高速化に興味あるならC/C++の標準ライブラリでなくOSのnativeのapiを積極的に使うのもいい
ファイルならメモリマップドファイルを使ったり(ファイル名調べるだけなら不要だけど)
他には検索アルゴリズムに凝る方向とかね
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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