エスケープシーケンスやWin32APIなどの環境依存なものもOK
そのような質問は必ず環境を書きましょう
半角空白やタブでのインデントはスレに貼ると無くなります
コードを貼れる所
http://codepad.org/
https://ideone.com/
前スレ
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/
探検
【初心者歓迎】C/C++室 Ver.104【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
2018/12/28(金) 06:04:52.38ID:ufThBpcD
531デフォルトの名無しさん
2019/02/23(土) 00:51:14.65ID:CdF18mGW つけて問題ないならつけるべきだけど、まあ実際は面倒くさくなければという程度…
532デフォルトの名無しさん
2019/02/23(土) 10:37:02.21ID:6erMuDJl533デフォルトの名無しさん
2019/02/23(土) 10:39:40.19ID:Iy1q86mj 今は良いけど、半年後の自分は既に他人だと思わないと
534デフォルトの名無しさん
2019/02/23(土) 11:45:29.73ID:+DV3f+Dk const連鎖まんどくせ
535デフォルトの名無しさん
2019/02/23(土) 12:40:33.73ID:aRr2CtyI 530みたいな質問する奴はそもそもconst気にする前に関数が長すぎたり
参照と実値渡しの違いもわかってないと思われるのでその辺をしっかりやった方が良い。
参照と実値渡しの違いもわかってないと思われるのでその辺をしっかりやった方が良い。
536デフォルトの名無しさん
2019/02/23(土) 17:32:16.44ID:7GKXwuwj 入門書の類が、最初のうちは const なしで説明しておいて、
本の後半でおもむろにポインタの引数に const つけることを
載せてたりするせいかもな。
高度な、マニアックな話題みたいな感じで。
文字列(charへのポインタ)を受け取る関数を紹介したら、
すかさず const char* の説明も合わせてすべきって気がする。
const の一般的な価値が分かれば、メンバ関数での func() const {...} の
ありがた味もすぐ飲み込めて const つけまくり派になるでしょ。
本の後半でおもむろにポインタの引数に const つけることを
載せてたりするせいかもな。
高度な、マニアックな話題みたいな感じで。
文字列(charへのポインタ)を受け取る関数を紹介したら、
すかさず const char* の説明も合わせてすべきって気がする。
const の一般的な価値が分かれば、メンバ関数での func() const {...} の
ありがた味もすぐ飲み込めて const つけまくり派になるでしょ。
537デフォルトの名無しさん
2019/02/23(土) 21:02:55.45ID:kvfLWeS8 戻り値を const char* してても、
char* const してなければさほど意味がない。
char* const してなければさほど意味がない。
538デフォルトの名無しさん
2019/02/23(土) 21:20:57.14ID:JpeZVvP/ それは質問なの初心者君?
539デフォルトの名無しさん
2019/02/23(土) 23:45:27.99ID:Z+wYSHT9 クソミソみたいなjavaのconstと違ってC++のconstは
コードの安全性を高めるのに必須といっていいぐらいのキーワード
とりあえず片っぱしから全部const付けて、どう頑張ってもここは
constはずさないと動くコードにできないよな・・ていうぐらいの
時だけはずす。このぐらいの気構えでコードを書けば、かなり安全な
コードになってる。他のやつが書きかえちゃダメなものをいじろうと
しても、強引なキャストでもしない限りどうやってもコンパイルが
通らなくなる。強引なキャストしてでも無理矢理強姦してくる強姦魔は
そもそも犯罪者気質なのでそんなやつに仕事をやらせてる時点で間違い
コードの安全性を高めるのに必須といっていいぐらいのキーワード
とりあえず片っぱしから全部const付けて、どう頑張ってもここは
constはずさないと動くコードにできないよな・・ていうぐらいの
時だけはずす。このぐらいの気構えでコードを書けば、かなり安全な
コードになってる。他のやつが書きかえちゃダメなものをいじろうと
しても、強引なキャストでもしない限りどうやってもコンパイルが
通らなくなる。強引なキャストしてでも無理矢理強姦してくる強姦魔は
そもそも犯罪者気質なのでそんなやつに仕事をやらせてる時点で間違い
540デフォルトの名無しさん
2019/02/23(土) 23:48:50.01ID:Iy1q86mj 「かなり安全な」
ここで思わず笑ってしまったではないか
ここで思わず笑ってしまったではないか
541デフォルトの名無しさん
2019/02/24(日) 00:00:52.25ID:qLJosHl4 残念ながらバカはmutable使い出すから無意味。
542デフォルトの名無しさん
2019/02/24(日) 00:06:41.22ID:2wDVhIfR 俺は書換られたりはしない たぶんしないと思う
しないんじゃないかな ま、ちょっと覚悟はしておけ
しないんじゃないかな ま、ちょっと覚悟はしておけ
543デフォルトの名無しさん
2019/02/24(日) 00:47:53.06ID:ORSkBdqU constっていちいち書くのめんどい
544デフォルトの名無しさん
2019/02/24(日) 00:48:50.68ID:haqs87u6 >>537
何を言ってるのか分かりません
何を言ってるのか分かりません
545デフォルトの名無しさん
2019/02/24(日) 01:15:50.47ID:is7scwjD いやまてまて・・このスレの99%はネタでできてるけど
そこ分からないのはダメだぞ
まさに初心者向けの話題ではある
そこ分からないのはダメだぞ
まさに初心者向けの話題ではある
546デフォルトの名無しさん
2019/02/24(日) 07:21:28.17ID:kwD2lttR >>541
mutable使ったらいかんのか
mutable使ったらいかんのか
547デフォルトの名無しさん
2019/02/24(日) 08:50:14.25ID:FFCpIhtq こいつ能力低いなと思う奴のソースを見ると、
constなんて全く付いていない場合が多い
constなんて全く付いていない場合が多い
548デフォルトの名無しさん
2019/02/24(日) 09:00:44.87ID:eyx8DEIH549デフォルトの名無しさん
2019/02/24(日) 09:02:28.69ID:zE1f0a65 cnst
550デフォルトの名無しさん
2019/02/24(日) 09:40:01.37ID:4ommn3XM constはキーボード入力の観点からはそんなに苦じゃない
stdとかarrayが割りと入力しづらい
左右均等に割り振られてると楽な感じ
stdとかarrayが割りと入力しづらい
左右均等に割り振られてると楽な感じ
551デフォルトの名無しさん
2019/02/24(日) 09:57:22.91ID:FGRIaiAP const char* a = "hoge";
const char* const a = "hoge";
の違いがわからんやつは死ねとよい
const char* const a = "hoge";
の違いがわからんやつは死ねとよい
552デフォルトの名無しさん
2019/02/24(日) 10:22:22.64ID:qLJosHl4 そんな違いを意識しないと読めないコード書く方がバカだと思う。
553デフォルトの名無しさん
2019/02/24(日) 10:24:20.55ID:eyx8DEIH (そんな初歩中の初歩でマウンティングドヤ顔して大丈夫っすか先輩)
554デフォルトの名無しさん
2019/02/24(日) 10:37:36.70ID:haqs87u6555デフォルトの名無しさん
2019/02/24(日) 12:08:33.20ID:6sZPiHms >>551
ドヤ顔して噛むなよ
ドヤ顔して噛むなよ
556デフォルトの名無しさん
2019/02/24(日) 12:15:09.98ID:sIV9Z0cV C++ってC言語の負の遺産を引き継いだ言語だろ?
constは廃止すべき
constは廃止すべき
557デフォルトの名無しさん
2019/02/24(日) 15:05:59.28ID:uFOuUY9d constみたいな糞どうでもいい些末なことより
配列のサイズとオーバーフローの管理を強化するべきだったんだよ
互換性捨てなきゃならんが
配列のサイズとオーバーフローの管理を強化するべきだったんだよ
互換性捨てなきゃならんが
558デフォルトの名無しさん
2019/02/24(日) 15:35:26.16ID:2tRfk65D >>557
そこはCの負の遺産を引き継いだのではなく、可能な限り実行時オーバーヘッドを小さくする実装手段を提供するというCの基本スタンスを継承しただけだろう。それが負の遺産というなら他の言語の方が適切なんだからそれを選択すればいいよ。
C++を使いたく、ある程度の実行時オーバーヘッドが許容できるときはstd::vectorという選択肢があるけど、それじゃダメなのか?
そこはCの負の遺産を引き継いだのではなく、可能な限り実行時オーバーヘッドを小さくする実装手段を提供するというCの基本スタンスを継承しただけだろう。それが負の遺産というなら他の言語の方が適切なんだからそれを選択すればいいよ。
C++を使いたく、ある程度の実行時オーバーヘッドが許容できるときはstd::vectorという選択肢があるけど、それじゃダメなのか?
559デフォルトの名無しさん
2019/02/24(日) 16:47:00.15ID:RgZ/0jGo >>556
const に関しては C++ で新規導入された仕様を ANSI C に逆輸入、
みたいな感じじゃなかったっけ?
そのせいか、定数としてconst変数を使えないとか中途半端になってる。
C++ が C の負の遺産を切り捨てるべきだったとしても、
const はその「C の負の遺産」の範疇に含まれないかと。
いずれにせよ、今さら言っても、現に存在する C++ はどうもならんよね。
そういう新プログラミング言語が出ても、それは C++ じゃない別物ってことで。
const に関しては C++ で新規導入された仕様を ANSI C に逆輸入、
みたいな感じじゃなかったっけ?
そのせいか、定数としてconst変数を使えないとか中途半端になってる。
C++ が C の負の遺産を切り捨てるべきだったとしても、
const はその「C の負の遺産」の範疇に含まれないかと。
いずれにせよ、今さら言っても、現に存在する C++ はどうもならんよね。
そういう新プログラミング言語が出ても、それは C++ じゃない別物ってことで。
560デフォルトの名無しさん
2019/02/24(日) 16:57:30.90ID:2fcQjxFq そういうのはDで良いと思う
561デフォルトの名無しさん
2019/02/24(日) 17:18:54.78ID:NUlc6EOn とりあえず数値以外はconst参照渡しが基本でおk?
562デフォルトの名無しさん
2019/02/24(日) 17:34:26.40ID:qxqTarkR563はちみつ餃子 ◆8X2XSCHEME
2019/02/24(日) 17:36:09.20ID:gUJTdPsI564デフォルトの名無しさん
2019/02/24(日) 17:40:12.42ID:qxqTarkR566デフォルトの名無しさん
2019/02/24(日) 17:48:01.19ID:qxqTarkR いやん
567デフォルトの名無しさん
2019/02/24(日) 18:48:30.19ID:qLJosHl4 そこまで挙動を変えるなら別言語でやれば良いし、実際rustとか他の言語としてあるだろ。
568デフォルトの名無しさん
2019/02/24(日) 18:53:22.05ID:2wDVhIfR 使わないで済ませる事ができるなら、使わないで置く方がうまく行く
570はちみつ餃子 ◆8X2XSCHEME
2019/02/25(月) 01:48:46.07ID:LzC1voP1 負の遺産でも互換性とのトレードオフだしな。
いいことばかりじゃないけど、悪いことばかりでもない。
とりあえず const は付けれるだけ付けとけというのが
ベストプラクティスだと思う。
いいことばかりじゃないけど、悪いことばかりでもない。
とりあえず const は付けれるだけ付けとけというのが
ベストプラクティスだと思う。
571デフォルトの名無しさん
2019/02/25(月) 12:52:11.08ID:y5m/9TYH572はちみつ餃子 ◆8X2XSCHEME
2019/02/25(月) 13:56:12.72ID:LzC1voP1573デフォルトの名無しさん
2019/02/25(月) 17:39:50.14ID:ubojwQhV 確かに、関数内で作ったローカル変数だけデフォルト変更可能、
他所から持ちこんだ、ポインタの先や参照、グローバル変数へのアクセスは
基本的に読み出しのみ許可で、明示した場合だけ変更できる、なら
「勝手に書き換えたのは誰だ!?」ってバグは減りそうだね。
他所から持ちこんだ、ポインタの先や参照、グローバル変数へのアクセスは
基本的に読み出しのみ許可で、明示した場合だけ変更できる、なら
「勝手に書き換えたのは誰だ!?」ってバグは減りそうだね。
574デフォルトの名無しさん
2019/02/25(月) 18:51:13.68ID:y5m/9TYH >>573
ああ、それなかなかいいかも
ああ、それなかなかいいかも
575デフォルトの名無しさん
2019/02/25(月) 20:42:12.40ID:lqvZQt+c そうそう、だから普通にC++書いてる人は
とりあえず引数に全部 const つけるでしょ
それはそういうことだよ
とりあえず引数に全部 const つけるでしょ
それはそういうことだよ
576デフォルトの名無しさん
2019/02/25(月) 20:44:41.85ID:x+rkal0w 引数じゃなく method の const は後悔することがちょいちょいと
class foo {
public:
void method() const;
};
class foo {
public:
void method() const;
};
577デフォルトの名無しさん
2019/02/25(月) 20:50:25.72ID:1EOktSCH constつけときゃいいってのもなんか胡散臭い印象しかないな。
そんなことよりも変更や生成を行う場所、タイミングを局所化するってのが本質だと思うが。
そんなことよりも変更や生成を行う場所、タイミングを局所化するってのが本質だと思うが。
578はちみつ餃子 ◆8X2XSCHEME
2019/02/25(月) 20:56:50.13ID:LzC1voP1 const が必要なところに付けるって考えるよりは
const では駄目なところでは外すという考え方の方が
安全っぽいという話であって、
適切に使い分けろというのは大前提のことだってことは補足しておく。
const が当たり前だって気持ちになると
変更が必要な個所は自然に局所化されるでしょ。
const では駄目なところでは外すという考え方の方が
安全っぽいという話であって、
適切に使い分けろというのは大前提のことだってことは補足しておく。
const が当たり前だって気持ちになると
変更が必要な個所は自然に局所化されるでしょ。
579デフォルトの名無しさん
2019/02/25(月) 21:58:02.00ID:rMTHv0xs const連鎖くらったらほどほどでいいやと思うようになる
580デフォルトの名無しさん
2019/02/25(月) 22:14:33.44ID:1EOktSCH なんというかもう修正が一切されないコードしか想定してない印象を受ける。
581デフォルトの名無しさん
2019/02/25(月) 22:37:43.55ID:rMTHv0xs やりすぎオブジェクト指向といっしょで
事故起こりにくいとこでこだわっても変更に弱くなるだけ
事故起こりにくいとこでこだわっても変更に弱くなるだけ
582デフォルトの名無しさん
2019/02/25(月) 22:51:58.14ID:ki6l711j 複雑怪奇で理解不能にしておくと、
変な改造されないで済む
変な改造されないで済む
583デフォルトの名無しさん
2019/02/26(火) 00:51:25.18ID:wcHiR3Ib 初心者で申し訳ないんですが、c/c++を学ぶため何か作りたいのですが、cで作る意味のあるいいお題はないでしょうか。JavaやC♯、rubyは一通りかける感じですがcはmallocなど知ってはいても使ったことはないレベルです。よろしくお願いします!
584デフォルトの名無しさん
2019/02/26(火) 01:02:30.50ID:Ujo6lghI >>583
ビットマップ画像を読み込んでブラーをかけてビットマップ画像として出力
ビットマップ画像を読み込んでブラーをかけてビットマップ画像として出力
585はちみつ餃子 ◆8X2XSCHEME
2019/02/26(火) 01:30:28.38ID:azIRgqwp >>583
いきなり「実務的な」プログラムを書くのはオススメしないよ。
C/C++ には歴史的経緯によってクソな落とし穴と「未定義」がたくさんあるので、
たとえ期待通りに動いたとしても正しくないプログラムであることは多い。
初心者向けのしょうもない (他の言語でやる入門と大差ないような) 題材で小さなプログラムを書いて
ブログとか Qiita とかに書いておけばベテランがよってたかって指摘してくれるさ。
そういうので基本的な落とし穴くらいは理解してから進んだ方が良いと思う。
いきなり「実務的な」プログラムを書くのはオススメしないよ。
C/C++ には歴史的経緯によってクソな落とし穴と「未定義」がたくさんあるので、
たとえ期待通りに動いたとしても正しくないプログラムであることは多い。
初心者向けのしょうもない (他の言語でやる入門と大差ないような) 題材で小さなプログラムを書いて
ブログとか Qiita とかに書いておけばベテランがよってたかって指摘してくれるさ。
そういうので基本的な落とし穴くらいは理解してから進んだ方が良いと思う。
586デフォルトの名無しさん
2019/02/26(火) 01:35:07.18ID:F6jD76wH HDDの中を検索するプログラムとか、整理するプログラムとか
こういうのがあったら便利だなっていう物を考えて作ってみる
途中分からなくなったら、ここに相談に来ると良い
親切な人が教えてくれる、かもしれない
あてにはしないこと
こういうのがあったら便利だなっていう物を考えて作ってみる
途中分からなくなったら、ここに相談に来ると良い
親切な人が教えてくれる、かもしれない
あてにはしないこと
587デフォルトの名無しさん
2019/02/26(火) 01:49:53.01ID:2prSgTvN おっさんらジイさんらの世代だと
「こういうのあったら便利だよな」と思って作りはじめるパターンは有効だったけど
今はそういうの探したらほとんどあるからある意味不幸だよな
しかも自分で作ってたらとてもここまで作ってるヒマないっていうぐらい高機能なのが多いし
「こういうのあったら便利だよな」と思って作りはじめるパターンは有効だったけど
今はそういうの探したらほとんどあるからある意味不幸だよな
しかも自分で作ってたらとてもここまで作ってるヒマないっていうぐらい高機能なのが多いし
588デフォルトの名無しさん
2019/02/26(火) 01:50:17.99ID:wcHiR3Ib589デフォルトの名無しさん
2019/02/26(火) 01:59:04.98ID:H+xdnOpD >>588
そもそも自分がC/C++を身につける意味があるかというとこらから見直した方がいいのでは?
直ちに必要な訳ではないが将来的に身に付けたいというなら、先に他の人が言っていたようにいきなり実用的なプログラムから入るより練習問題レベルの小品をコツコツ作っていった方がいいと思う。
そもそも自分がC/C++を身につける意味があるかというとこらから見直した方がいいのでは?
直ちに必要な訳ではないが将来的に身に付けたいというなら、先に他の人が言っていたようにいきなり実用的なプログラムから入るより練習問題レベルの小品をコツコツ作っていった方がいいと思う。
590はちみつ餃子 ◆8X2XSCHEME
2019/02/26(火) 02:00:19.43ID:azIRgqwp どうしても自分が欲しくて既存のものがないってケースでも、
既存のものをバッチファイルで繋げればできるって程度のものだったりするもんな。
そういう意味じゃ、日常ではスクリプト言語の方が使うことが多いとは思う。
俺が一番最近に書いた C のプログラムもスクリプト言語の拡張パッケージだし。
既存のものをバッチファイルで繋げればできるって程度のものだったりするもんな。
そういう意味じゃ、日常ではスクリプト言語の方が使うことが多いとは思う。
俺が一番最近に書いた C のプログラムもスクリプト言語の拡張パッケージだし。
591デフォルトの名無しさん
2019/02/26(火) 02:19:19.20ID:F6jD76wH592はちみつ餃子 ◆8X2XSCHEME
2019/02/26(火) 02:22:08.89ID:azIRgqwp593デフォルトの名無しさん
2019/02/26(火) 02:40:55.07ID:OTQ63qDn C/C++使う必要性がわからないならやらないのが正解
今だにこんなクソ言語使ってるのはそれしか選択肢がないから
あるいは物好きな言語マニアか
今だにこんなクソ言語使ってるのはそれしか選択肢がないから
あるいは物好きな言語マニアか
594デフォルトの名無しさん
2019/02/26(火) 03:33:39.99ID:belfWXD5 先に他の言語やらんとC++の必要性はわからんと思う
595588
2019/02/26(火) 08:48:58.01ID:+14u2RP+ こんなにレスもらえると思いませんでした、他の言語スレや板だともっと殺伐としてます。。。ありがとうございます。
低レイヤを高速で処理できるのが魅力だと思うので最終的には任意のパケットを送受信できるデーモンを作りたい。ので、>>591のいう同名ファイル検索デーモンから始めようと思います。
低レイヤを高速で処理できるのが魅力だと思うので最終的には任意のパケットを送受信できるデーモンを作りたい。ので、>>591のいう同名ファイル検索デーモンから始めようと思います。
596デフォルトの名無しさん
2019/02/26(火) 09:06:06.17ID:OTQ63qDn ならechoサーバーから入ってhttpサーバーという定番ソケットプログラミングコースもおすすめ
まぁでもその検索デーモンとやらでファイルの扱い勉強してからでいいだろうな
高速化に興味あるならC/C++の標準ライブラリでなくOSのnativeのapiを積極的に使うのもいい
ファイルならメモリマップドファイルを使ったり(ファイル名調べるだけなら不要だけど)
他には検索アルゴリズムに凝る方向とかね
まぁでもその検索デーモンとやらでファイルの扱い勉強してからでいいだろうな
高速化に興味あるならC/C++の標準ライブラリでなくOSのnativeのapiを積極的に使うのもいい
ファイルならメモリマップドファイルを使ったり(ファイル名調べるだけなら不要だけど)
他には検索アルゴリズムに凝る方向とかね
597デフォルトの名無しさん
2019/02/26(火) 11:48:20.70ID:9FjD9aLm598デフォルトの名無しさん
2019/02/26(火) 14:41:46.79ID:8+7ktUtN globalに宣言されてる変数と同じ型同じ名前で
関数内にlocalに宣言されたものがあるとき
警告出してくれるオプションって何だっけ
関数内にlocalに宣言されたものがあるとき
警告出してくれるオプションって何だっけ
599デフォルトの名無しさん
2019/02/26(火) 16:05:20.40ID:5MxkS3P7 >>595
なんで、そんな面倒くさい事をしなきゃならないんだ?
Ruby なら、PowerShell から、1-liner で、
Rubyで作られた遅いウェブサーバー、WEBrick が起動する
ruby -run -e httpd . -p 8080
そのフォルダに、index.html があれば、
何も考えなくても、これでブラウザからアクセスできる
http://localhost:8080
なんで、そんな面倒くさい事をしなきゃならないんだ?
Ruby なら、PowerShell から、1-liner で、
Rubyで作られた遅いウェブサーバー、WEBrick が起動する
ruby -run -e httpd . -p 8080
そのフォルダに、index.html があれば、
何も考えなくても、これでブラウザからアクセスできる
http://localhost:8080
600デフォルトの名無しさん
2019/02/26(火) 16:39:31.27ID:2RZ4BMiv601588
2019/02/26(火) 17:33:10.46ID:+14u2RP+ みなさんありがとう
今日は会社で暇だったのでコピペベースながらUDPで任意のメッセージ送受信出来るようになった
ヘッダでincludeする構造体って宣言済みのクラスみたいな感じで使えることを理解しました。(udphdrを使わずにsendしたからか、送れたけどudpチェックサムは自動で計算されなかった)
tcpは、というかhttpサーバは難しそうですが頑張ります!
今日は会社で暇だったのでコピペベースながらUDPで任意のメッセージ送受信出来るようになった
ヘッダでincludeする構造体って宣言済みのクラスみたいな感じで使えることを理解しました。(udphdrを使わずにsendしたからか、送れたけどudpチェックサムは自動で計算されなかった)
tcpは、というかhttpサーバは難しそうですが頑張ります!
602デフォルトの名無しさん
2019/02/26(火) 17:44:16.64ID:MNG9zBp3 >>598
gcc/clang だと -Wshadow だな。
-Wall -Wextra とは別に指定する必要があるようだ。
細かいことを言えば、同じ型でなくても、名前が隠される場合は警告が出る。
今ネットで調べて確認、これからオイラも使うことにする。
gcc/clang だと -Wshadow だな。
-Wall -Wextra とは別に指定する必要があるようだ。
細かいことを言えば、同じ型でなくても、名前が隠される場合は警告が出る。
今ネットで調べて確認、これからオイラも使うことにする。
603デフォルトの名無しさん
2019/02/26(火) 23:22:44.06ID:8Je4SUY+ 同じ意味だけど型が違うときの変数名ってどうされてますか?
いつも困ってます。
例)
float2 fPos( 1.0f, 2.0f );
XMFLOAT2 fPos( fPos.x, fPos.y ); ←当然同じ名前は×
いつも困ってます。
例)
float2 fPos( 1.0f, 2.0f );
XMFLOAT2 fPos( fPos.x, fPos.y ); ←当然同じ名前は×
604デフォルトの名無しさん
2019/02/27(水) 07:11:30.50ID:tay7IMIk >>603
float2でfPosって付けてるならXMFLOAT2ならxPosとかでいいと思うが…
float2でfPosって付けてるならXMFLOAT2ならxPosとかでいいと思うが…
605デフォルトの名無しさん
2019/02/27(水) 07:53:03.71ID:3Jl+ieqT >>603
よくシステムハンガリアンは悪と言われるけど、この例のように同じ内容で型名の違いに意味がある場合は、型名に関するプリフィックスをつければいいんでない?
とあるライブラリに渡す境界部分ならそのライブラリ名に関するプリフィックスとか。
よくシステムハンガリアンは悪と言われるけど、この例のように同じ内容で型名の違いに意味がある場合は、型名に関するプリフィックスをつければいいんでない?
とあるライブラリに渡す境界部分ならそのライブラリ名に関するプリフィックスとか。
606デフォルトの名無しさん
2019/02/27(水) 19:12:35.49ID:8imVoWCJ 初心者ですみません、こんなコードをみたのですが2点わかりません。
char packet[1500];
memset(buf, 0, sizeof(buf));
ether_header *eh;
eh = (struct ether_header *)packet;
たぶん、1500byteのメモリを確保して0埋め、ether_header構造体のポインタを宣言してpacketのアドレスを渡す、としたいのだと思います。
分からないのは0埋め対象が宣言されていない変数bufであること、packetのアドレスを渡すのにわざわざether_header型のポインタにキャストしている2点です。よろしければ教えてください。
https://qiita.com/marufeuille/items/81f323a52a6fd3bd530c
char packet[1500];
memset(buf, 0, sizeof(buf));
ether_header *eh;
eh = (struct ether_header *)packet;
たぶん、1500byteのメモリを確保して0埋め、ether_header構造体のポインタを宣言してpacketのアドレスを渡す、としたいのだと思います。
分からないのは0埋め対象が宣言されていない変数bufであること、packetのアドレスを渡すのにわざわざether_header型のポインタにキャストしている2点です。よろしければ教えてください。
https://qiita.com/marufeuille/items/81f323a52a6fd3bd530c
607さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/02/27(水) 19:18:47.40ID:AjY/hWvK bufはpacketの間違いか? 多分。
608デフォルトの名無しさん
2019/02/27(水) 19:25:41.76ID:uRVYM9rZ キャストしてるのはwarning回避じゃないか?
609デフォルトの名無しさん
2019/02/27(水) 19:41:57.94ID:vHAcjSp1 >>606 の引用元を見るとコード片だから、実際にはコンパイルしてないんだな。
char packet[1500];
memset(buf, 0, sizeof(buf));
は、packet と buf が同じもので、正しくは
char packet[1500];
memset(packet, 0, sizeof(packet));
なんだと思う。最初は両方とも buf と書いてあったけど
「もっと自ら語る変数名にしよう」と packet に変えたはいいが、
memset() の方では直し忘れた、というお話かと。
(struct ether_header *) のキャストは、コンパイラの警告対策だな。
…って言うか、これキャストしないでも警告だけで通るのね。
char packet[1500];
memset(buf, 0, sizeof(buf));
は、packet と buf が同じもので、正しくは
char packet[1500];
memset(packet, 0, sizeof(packet));
なんだと思う。最初は両方とも buf と書いてあったけど
「もっと自ら語る変数名にしよう」と packet に変えたはいいが、
memset() の方では直し忘れた、というお話かと。
(struct ether_header *) のキャストは、コンパイラの警告対策だな。
…って言うか、これキャストしないでも警告だけで通るのね。
610デフォルトの名無しさん
2019/02/27(水) 19:48:31.45ID:cPR259KO やってきたパケットのうち 頭のEthernet Header にフォーカスしてる意図でのキャストかな?
最終的には char [1500] で受け取ったパケットの配分を(パディング無しで)
struct TCPpacket {
Ethernet_Header eth;
IP_Header iph;
TCP_Header tcph;
char* TCP_payload[]; /* 末尾可変サイズ */
};
に配分したいんだろうけど、手を抜くなら union にしそうだわ
union Packet {
struct TCPpacket tcp;
char* packet[1500];
};
最終的には char [1500] で受け取ったパケットの配分を(パディング無しで)
struct TCPpacket {
Ethernet_Header eth;
IP_Header iph;
TCP_Header tcph;
char* TCP_payload[]; /* 末尾可変サイズ */
};
に配分したいんだろうけど、手を抜くなら union にしそうだわ
union Packet {
struct TCPpacket tcp;
char* packet[1500];
};
611603
2019/02/28(木) 00:25:33.39ID:OS/9xoBt612デフォルトの名無しさん
2019/02/28(木) 09:35:29.75ID:KtBFXYBy どうせ長ったらしい関数書いてんだろ
それがそもそもの間違い
それがそもそもの間違い
613デフォルトの名無しさん
2019/02/28(木) 12:25:31.13ID:o9FaNCnF615デフォルトの名無しさん
2019/02/28(木) 22:42:25.23ID:chn/XevV いやーCは簡単な言語だけどC++はとんでもなく難しい言語だと思うぞ
解説本が電話帳より分厚いなんてな自然言語超えてる
解説本が電話帳より分厚いなんてな自然言語超えてる
616デフォルトの名無しさん
2019/02/28(木) 22:46:25.10ID:UN7NGNSN そんな解説本あるのかw
617デフォルトの名無しさん
2019/02/28(木) 23:11:49.78ID:LM7UlKO7 それはあいつが悪いだろ‥
618デフォルトの名無しさん
2019/03/01(金) 00:09:02.27ID:TIzWjpCx しかも、言語仕様の改訂が3年ごとと早すぎて、
邦訳解説本はもちろん、原書でもリリースがおいつかず、
仕様改訂を繰り返すたびについてこれないユーザーをふるい落とす恐るべき言語
仕様改訂の世代を重ねるごとに中国以上の人口減少率でユーザー数が減少する既に終わった少子化言語ww
邦訳解説本はもちろん、原書でもリリースがおいつかず、
仕様改訂を繰り返すたびについてこれないユーザーをふるい落とす恐るべき言語
仕様改訂の世代を重ねるごとに中国以上の人口減少率でユーザー数が減少する既に終わった少子化言語ww
619デフォルトの名無しさん
2019/03/01(金) 01:01:16.39ID:SPEgyt6t なんか皆C++はむずかしいむずかしいっていうが、そんなむずかしいか?
俺的には今時のECMAScriptと各種フレームワークの使い方のほうがよほどむずかしい。
2、3年もすると何だかイノベーションがどうのこうのいってまるっきり別物のコンセプトのがでてくるし・・。
C++なんて基本概念はもう何十年もかわらんだろ。あとはその都度必要なstlとかの機能覚えればいいだけ。
楽なもんだよ。
俺的には今時のECMAScriptと各種フレームワークの使い方のほうがよほどむずかしい。
2、3年もすると何だかイノベーションがどうのこうのいってまるっきり別物のコンセプトのがでてくるし・・。
C++なんて基本概念はもう何十年もかわらんだろ。あとはその都度必要なstlとかの機能覚えればいいだけ。
楽なもんだよ。
620デフォルトの名無しさん
2019/03/01(金) 01:51:54.22ID:ejlMN09K 今何も見ずにラムダ式書ける?
621デフォルトの名無しさん
2019/03/01(金) 01:55:24.44ID:aAd1thXX 有名所のライブラリでラムダ式使ってるの見たことない
622デフォルトの名無しさん
2019/03/01(金) 06:22:49.33ID:TGgsjFNR 『プログラミング言語C++』第4版は電話帳より厚いね。
あれは解説書だよな。1300ページ以上ある。
ちょうど新しい電話帳が届けられたばかり。
田舎住まいだから都市部に比べて電話帳が薄いってこともあるけど。
あれは解説書だよな。1300ページ以上ある。
ちょうど新しい電話帳が届けられたばかり。
田舎住まいだから都市部に比べて電話帳が薄いってこともあるけど。
623デフォルトの名無しさん
2019/03/01(金) 07:01:09.26ID:TGgsjFNR C++は新しい言語仕様が次々に追加されるせいで、
同じ細かな処理をするにも人によって書き方が色々になって、
「同じ言語で同じ処理をしてるはずなのにソースは似ても似つかない」
「自分で書くには便利だけど、他人の書いたプログラムは読み解けない」
てな状況になってるんと違うかな。
わざわざストラウストラップ先生が「言語の全部を知らなくても、
徐々に理解しながら使えばいい」と書いてくれてるけど、
他人のソースを読む際には役に立たないアドバイスだよね。
同じ細かな処理をするにも人によって書き方が色々になって、
「同じ言語で同じ処理をしてるはずなのにソースは似ても似つかない」
「自分で書くには便利だけど、他人の書いたプログラムは読み解けない」
てな状況になってるんと違うかな。
わざわざストラウストラップ先生が「言語の全部を知らなくても、
徐々に理解しながら使えばいい」と書いてくれてるけど、
他人のソースを読む際には役に立たないアドバイスだよね。
624デフォルトの名無しさん
2019/03/01(金) 13:03:30.11ID:ozM8zBQ9625デフォルトの名無しさん
2019/03/01(金) 13:21:26.51ID:5w/5u0Tx こういうc++の危険さをまったく認識できてないやつが一番困る
std::forwardの意義を誰にでもわかるように説明してみろよ
std::forwardの意義を誰にでもわかるように説明してみろよ
626デフォルトの名無しさん
2019/03/01(金) 15:52:20.02ID:3z2kkMi4 C++11以降とそれ以前で違い過ぎるのが問題では?
627はちみつ餃子 ◆8X2XSCHEME
2019/03/01(金) 16:02:10.84ID:Vq7maKYR >>623
「徐々に理解しながら」は、 C を既に知っている人を明らかに想定していて、
今では C がそんなに支配的でもないという状況を思うと適切な動線とは言えないという意味でも
あまり役に立たなくなってきていると思う。
ただ、追加された機能を見ると、
新しい書き方の方が間違い難くて綺麗で一貫していることが多いので、
肥大化するから追加するのをやめろとも言い難いんだよな……。
「徐々に理解しながら」は、 C を既に知っている人を明らかに想定していて、
今では C がそんなに支配的でもないという状況を思うと適切な動線とは言えないという意味でも
あまり役に立たなくなってきていると思う。
ただ、追加された機能を見ると、
新しい書き方の方が間違い難くて綺麗で一貫していることが多いので、
肥大化するから追加するのをやめろとも言い難いんだよな……。
628デフォルトの名無しさん
2019/03/01(金) 16:17:07.89ID:yZJ4Zkhu 皆、ドワンゴ江添亮の本を読んでいないから、C++ の恐ろしさがわからないのだろう
詳細を突っつくと、無限にややこしいものが出てくるw
だから江添でさえ、詳細は省略しますって書いてあるw
>>610
1バイトずつ、check sum を計算するような場合は、そういうように、union にするのが定番
詳細を突っつくと、無限にややこしいものが出てくるw
だから江添でさえ、詳細は省略しますって書いてあるw
>>610
1バイトずつ、check sum を計算するような場合は、そういうように、union にするのが定番
629デフォルトの名無しさん
2019/03/01(金) 17:25:35.13ID:tC4m5Wn4 ●ワンゴ倒産の危機わろすω
630588
2019/03/01(金) 17:56:26.55ID:VPz6Y2H0 udpパケットを送れるようにはなったのですが、wiresharkで確認するとudpフレームのchecksumが未定義となっていました。。。
そこで1からやりなおしたいのですが、ソケットはrawで開くべきなのでしょうか。いまはudpなのでdgramで開いてsockaddr_inのインスタンスをつかってsendtoしています。
そこで1からやりなおしたいのですが、ソケットはrawで開くべきなのでしょうか。いまはudpなのでdgramで開いてsockaddr_inのインスタンスをつかってsendtoしています。
631デフォルトの名無しさん
2019/03/01(金) 18:11:15.15ID:a4IFMTFx checksum計算して値入れてから送れよ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★10 [ぐれ★]
- トランプ氏「台湾侵攻すれば北京爆撃」“過激予告発言”報道がXで再燃「高市氏の1億倍やばい」 [七波羅探題★]
- 【維新国会議員が800万円超の公金を使用】藤田文武共同代表が印刷代569万円を維新市議の「身内企業に支出」していた! [ぐれ★]
- 「母の部屋に安倍氏が表紙の機関誌が」「(安倍氏が被害者なのは)不思議に思いませんでした」山上被告の妹が証言 ★2 [おっさん友の会★]
- 【ペルソナ・ノン・グラータ】中国総領事の早期国外退去を首相に要請へ 自民・保守系グループ「日本の尊厳と国益を護(まも)る会」 [ぐれ★]
- 【Jリーグ】モンテディオ山形 新スタジアム会員、募集停止 資金計画を再調整、年明け再開予定 [鉄チーズ烏★]
- 高市さん「自賠責を勝手に他の財源に充てるな、返せ」財務省さん、しぶしぶ5700億円を返還 [881878332]
- 中国報道、高市首相を「毒苗」と中傷😡 [399259198]
- 【高市悲報】🇨🇳中国「日本への報復措置? 他にいくらでも方法はある。 まだまだやめないよ」 😨😱 [485983549]
- 【高市】まず父さんの首切り発言が元なのにそれはスルーなのレスバのテクって感じだよな、ジャップって卑怯な癖してこの技術はない [213647114]
- 【悲報】日本、パンダ0にwwwwwwwwwwww高市さんありがとう🐼 [271912485]
- 安倍晋三「円が300円になったらトヨタ車が3分の1で売れる。日本への旅費も3分の1になる。そうすればあっという間に経済は回復していく」 [177178129]
