1 名前:デフォルトの名無しさん mailto:sage [2018/01/20(土) 09:05:42.21 ID:mJKRg6iz0.net] 次スレを立てる時は本文の1行目に以下を追加して下さい。 !extend:on:vvvvv:1000:512 C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part133 mevius.5ch.net/test/read.cgi/tech/1511509970/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.102【環境依存OK】 mevius.5ch.net/test/read.cgi/tech/1509780815/ ■長いソースを貼るときはここへ。■ codepad.org/ https://ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語) VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
496 名前:デフォルトの名無しさん mailto:sage [2018/03/07(水) 22:12:59.22 ID:eXkgxxlqd.net] C言語では ((void*)0) だった気がする
497 名前:デフォルトの名無しさん mailto:sage [2018/03/07(水) 22:34:03.79 ID:ylRgY7un0.net] >>477 7-7は定数式なので0と完全に等価 純粋仮想関数の = 0 はA.8のpure-specifierで=0という特定のスペルと規定されているので7-7がエラーになるのは当然
498 名前:デフォルトの名無しさん mailto:sage [2018/03/07(水) 22:41:42.97 ID:eXkgxxlqd.net] いや疑問も呈していないし否定しているわけでもないのに当然と言われてもな…
499 名前:デフォルトの名無しさん mailto:sage [2018/03/07(水) 22:52:11.20 ID:ylRgY7un0.net] じゃあ何のために、7-7とか言い出したんだ?
500 名前:はちみつ餃子 mailto:sage [2018/03/07(水) 23:02:40.75 ID:TWOfgg7C0.net] >>479 それはあかん。 ひょっとしたら古い処理系でやってるのはあるかもしれんが、 規格違反のはず。
501 名前:はちみつ餃子 mailto:sage [2018/03/07(水) 23:12:03.15 ID:TWOfgg7C0.net] >>483 と、思って調べてたんだけど、 C++ だと確実にあかんようだけど C だとアリなのかもしれない。
502 名前:デフォルトの名無しさん mailto:sage [2018/03/07(水) 23:58:27.20 ID:/Jrz1mw60.net] offsetof()がどう実装されているかやね
503 名前:デフォルトの名無しさん mailto:sage [2018/03/08(木) 02:18:11.16 ID:BQ11IIJi0.net] >>476-477 C++14 からリテラルだけに限定されてるよ。 d.hatena.ne.jp/yohhoy/20140305/p1
504 名前:はちみつ餃子 mailto:sage [2018/03/08(木) 03:31:21.90 ID:+04GXVK30.net] おっ、こんな基本的なことで変更が入ってたのか。 でも当然といえば当然の処置よな。
505 名前:デフォルトの名無しさん mailto:sage [2018/03/08(木) 06:41:46.04 ID:DSeYC6Qd0.net] Cの無意味な汚いゴミが掃除されるのは良いことだ
506 名前:デフォルトの名無しさん mailto:sage [2018/03/08(木) 07:33:41.79 ID:dmEui5aT0.net] >>484 しっかりして 流石にこの件では C と C++ 混同されたら対話が成り立たないよ
507 名前:デフォルトの名無しさん mailto:sage [2018/03/08(木) 18:35:02.35 ID:uuOHCrug0.net] C++の勉強+機械学習も勉強しようとVisual Studio 2017でtiny-dnnを用いたいのですが、tiny-dnn内でコンパイルエラーが発生します。 具体的にはxcontainer.hpp内でC3203というエラーが頻発したり、feedfoward_layer.hppではC2760というエラーが発生したりしています。 環境はWindows 7でVisual Studio 2017 communityです。 プロジェクトはwindowsデスクトップアプリケーションを用いています。 tiny-dnnのインクルードはプロパティのインクルードディレクトリに追加しています。 どなたか心当たりのある方がいらっしゃれば教えていただけると嬉しいです。
508 名前:デフォルトの名無しさん mailto:sage [2018/03/08(木) 19:27:19.96 ID:i2S5Knpdd.net] linux windows両対応のコードを考えている最中の質問です unsigned int型の変数xの32bitに、char型の配列y[4]の8bit×4を当て込みたいです y[0]から順にxの先頭ビットに入れたいのだけど そういう時はどのようなコードになるのでしょうか 符号の問題で単純に24bitシフト+16bitシフト...みたいなことをすると期待の値にならないときが存在してます
509 名前:デフォルトの名無しさん mailto:sage [2018/03/08(木) 19:50:56.79 ID:2k5PL6f/a.net] unionでどう?
510 名前:デフォルトの名無しさん mailto:sage [2018/03/08(木) 20:26:39.82 ID:FhiFltVyd.net] >>491 シフトする前にunsigned charにキャストする
511 名前:デフォルトの名無しさん mailto:sage [2018/03/08(木) 20:29:17.36 ID:FhiFltVyd.net] 参考 https://stackoverflow.com/questions/2437283/c-c-packing-signed-char-into-int
512 名前:はちみつ餃子 mailto:sage [2018/03/08(木) 22:47:08.29 ID:+04GXVK30.net] >>489 スマソ
513 名前:デフォルトの名無しさん mailto:sage [2018/03/09(金) 11:50:12.37 ID:XHk1xHdH0.net] ヘッダーファイルの関数定義から関数ポインタをtypedefする事は可能ですか? C++98辺りのコンパイラです。
514 名前:はちみつ餃子 mailto:sage [2018/03/09(金) 12:25:38.00 ID:nl8HCt1x0.net] >>496 昔の C++ には decltype が無いもんな。 出来ないと思うよ。
515 名前:デフォルトの名無しさん mailto:sage [2018/03/09(金) 12:57:58.47 ID:zqzgOSq4d.net] テンプレート使えないかな?
516 名前:デフォルトの名無しさん mailto:sage [2018/03/09(金) 13:06:17.52 ID:XHk1xHdH0.net] 出来ませんか。ありがとう。 再定義が面倒だったので楽したいだけだったんですけどね。
517 名前:はちみつ餃子 mailto:sage [2018/03/09(金) 13:35:32.12 ID:nl8HCt1x0.net] >>498 その手があったか。 でも C++98 で自動で推論させようとするとヘルパー関数を使う必要があるじゃろ。 意味のないオブジェクト生成 (最適化で消えるかもしれんけど) がださい感じはするよね。
518 名前:デフォルトの名無しさん mailto:sage [2018/03/09(金) 19:06:34.98 ID:CekgNpjOM.net] >>496 たくさんあるなら > ヘッダーファイルの関数定義から関数ポインタをtypedefする コードを生成するツールを作るとか
519 名前:デフォルトの名無しさん [2018/03/09(金) 22:17:46.30 .net] >>496 マクロ駆使すれば TYPEDEF_FUNC_DE
520 名前:CL(なんちゃら); FUNC_DEF(かんちゃら) { return; } みたいな書き方できないのかな? なんちゃらは識別名と戻り値と引数 かんちゃらは識別名を指定するイメージ [] [ここ壊れてます]
521 名前:デフォルトの名無しさん [2018/03/09(金) 23:46:50.00 ID:yn7GHiyb0.net] >>491 unsigned int x; char y[4]; . . . memcpy(&x, y, 4);
522 名前:デフォルトの名無しさん mailto:sage [2018/03/09(金) 23:57:54.33 ID:5+PoAx/E0.net] >>491 xの先頭ビットとはMSBなのかLSBなのか
523 名前:デフォルトの名無しさん mailto:sage [2018/03/10(土) 00:45:01.61 ID:8ENKFfsbd.net] メモリ上でのレイアウトとかもあるのでuint8_t経由でのシフトがいい クロックが(メモリアクセスが問題にならない程)低くてシフトが遅いマイクロプロセッサは別
524 名前:デフォルトの名無しさん [2018/03/10(土) 04:49:25.72 .net] >>503 x = ntohl(x); も忘れずに
525 名前:デフォルトの名無しさん mailto:sage [2018/03/10(土) 06:32:30.15 ID:Tg3hDFxK0.net] >>491 先頭ビットって32ビット目のことか?
526 名前:デフォルトの名無しさん [2018/03/10(土) 17:21:32.19 ID:a2p+alti0.net] >>506 それが必要になるかどうかは場合による。
527 名前: mailto:sage [2018/03/10(土) 17:42:35.32 ID:+Ww908Qw0.net] ネットワークバイトオーダーがここで関係あるのだろうか?
528 名前:デフォルトの名無しさん [2018/03/10(土) 19:22:25.29 .net] >unsigned int型の変数xの32bitに、char型の配列y[4]の8bit×4を当て込みたいです >y[0]から順に っていう要件だから、ホストバイトオーダーがビッグエンディアンかリトルエンディアンか分からない以上は常にntohlを付けるべき
529 名前:デフォルトの名無しさん [2018/03/10(土) 19:24:15.74 .net] char y[4] = { 0x12, 0x34, 0x56, 0x78 }; unsignd in x = 0x12345678; これを等価にしたいという意味だろうから。
530 名前:デフォルトの名無しさん mailto:sage [2018/03/10(土) 21:52:35.38 ID:My21AM/A0.net] 独習c++終わりそうなんだが次によむべき本とかある?
531 名前: mailto:sage [2018/03/10(土) 22:03:20.54 ID:+Ww908Qw0.net] >>512 https://mevius.5ch.net/test/read.cgi/tech/1493844476/312 あと STL の教科書、これもC++11以前のもの https://www.amazon.co.jp/dp/4881357786/
532 名前:デフォルトの名無しさん mailto:sage [2018/03/10(土) 22:09:22.02 ID:Tk41qGXE0.net] 本ばかり読まず実践しよう
533 名前:デフォルトの名無しさん mailto:sage [2018/03/10(土) 22:09:43.95 ID:lWictyCS0.net] >>512 cpprefjp
534 名前:デフォルトの名無しさん mailto:sage [2018/03/10(土) 22:28:49.18 ID:tBgkA+tH0.net] プログラミング言語C++とかどうやろ
535 名前:デフォルトの名無しさん mailto:sage [2018/03/10(土) 22:50:35.99 ID:My21AM/A0.net] ありがとうございます ひとまず>>513 の本にしてみます
536 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 00:41:56.08 ID:6KlfnVLZ0.net] そういえば最新版のEffective STLみたいな本って無いのか?
537 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 00:53:03.16 ID:Bd/2u4u/0.net] あると思うが訳者がへたくそで右辺値左辺値あたり意味ワカランかったぞ
538 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 00:57:27.74 ID:Bd/2u4u/0.net] その辺りの参考にするなら下手な日本語文献探るよりか英文そのまま読んだ方がいい希ガス なんでもかんでも日本語訳してあるとほんと意味ワカランから
539 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 01:11:03.65 ID:n48SUKtd0.net] cpprefjpのstd::min_elementとstd::max_elementの例文が間違ってるので誰か直してください。 自分はGitHubのアカウント持ってないので編集できません。 https://cpprefjp.github.io/reference/algorithm/min_element.html https://cpprefjp.github.io/reference/algorithm/max_element.html 誤:return a > b; 正:return a < b;
540 名前:デフォルトの名無しさん [2018/03/11(日) 01:22:57.30 ID:ry5KQfC80.net] unsigned int x; char y[4]; . . . x = ((y[0] & 0xff) << 24) | ((y[1] & 0xff) << 16) | ((y[2] & 0xff) << 8) | (y[3] & 0xff);
541 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 01:34:50.04 ID:P1lOCLpn0.net] Scott Meyers Effective C++ 第3版 (ADDISON-WESLEY PROFESSIONAL COMPUTI)、2014 Effective Modern C++ ―C++11/14プログラムを進化させる
542 名前:42項目、2015 Effective C++ は、昔の本のリバイバルかな? 内容が新しいかどうかまでは、分からないけど [] [ここ壊れてます]
543 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 08:34:37.66 ID:XWEx9Mlwd.net] テンプレートを使ったメタプログラムの有用性が分からん。コンパイル時処理で定数の階乗を計算してるけど実行時に値を変えれないなら、答えをベタ書きすればいいだけでは?
544 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 08:43:14.65 ID:zMqNV6vza.net] その値をベタ書きする手間をコンパイラにまかせることが出来るのが利点だと思うよ。
545 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 08:48:18.87 ID:XWEx9Mlwd.net] 3の階乗を、tmpするより6とタイプした方が早いだろ
546 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 09:03:15.99 ID:6KlfnVLZ0.net] >>526 3ならいいけど10の階乗は?15の階乗は?21の階乗は? それは整数型で表現できるか? それは何桁になるのか? 適切な型をどうやって選ぶのか? その値を静的な配列のサイズにしたいが数値を変えるたびに電卓で計算はしたくない ならばfactorial<N>::valueと表現できれば便利ではないか ということ
547 名前:デフォルトの名無しさん [2018/03/11(日) 09:03:17.33 ID:0BygLdlM0.net] その3という数値が別のファイルの特定の値に依存してる場合もあるし
548 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 09:08:13.99 ID:6KlfnVLZ0.net] 意地悪するのはこの辺にしておいて それはメタプログラミングでこいういうこともできるよ程度のものにすぎない テンプレートメタプログラミングとはテンプレートを使ってソースコードを生成することだ ソースコードを作るためのプログラミングだと思ってくれてかまわない 一般的な目的としてはジェネリックプログラミングを実現するために使われる 標準ライブラリではvectorからchoronoやtupleまでテンプレートメタプログラミングありきの設計になっている
549 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 09:08:56.54 ID:zMqNV6vza.net] 値が小さいうちはそうかもしれんが16の階乗とか値が大きくなってもベタ書きが良い? ちなみにconstexprが使えるc++11以降の話と考えてOK?
550 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 10:19:34.71 ID:i1Cv6XBY0.net] 階乗の例はいい例とは言えんな TMPで操作したいのはメインは型の方だからな 値も出来るよって例が階乗なだけで
551 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 10:40:47.13 ID:z1FVyjSJ0.net] >>529 > ソースコードを作るためのプログラミングだと思ってくれてかまわない そこまでやるならPL/Iみたいに%FOR %SELECTみたいな普通の制御構文で書ける方がいいわ
552 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 10:50:57.85 ID:zMqNV6vza.net] そんな貴方にtemplate+constexpr(c++14以降)
553 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 10:58:38.38 ID:6KlfnVLZ0.net] >>532 頑張って古代人用のコンパイラ作ってくれ
554 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 11:03:02.47 ID:z1FVyjSJ0.net] >>534 お前アホだろ w 方向性がおかしいって話だぞ
555 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 11:13:25.26 ID:6KlfnVLZ0.net] >>535 現代の言語でジェネリクスをサポートするのは一般的 テンプレートをこねくり回して整数演算をするのはおかしいという意味なら、普通の構文で書けるconstexprが追加されたからそっちを使うように
556 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 11:58:27.43 ID:TvwI/h8S0.net] テンプレートで再帰ができたらナア…('A`)
557 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 12:00:06.04 ID:TvwI/h8S0.net] とわいいつつ、実はC++のテンプレートはチューリング完全になってしまっていた(らしい ttps://cpplover.blogspot.jp/2013/10/blog-post_20.html
558 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 12:05:49.26 ID:93lmuZEGM.net] >>536 costexprで階乗書いてみてから言えよ
559 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 16:36:05.55 ID:i1Cv6XBY0.net] constexpr unsigned long long factorial(int n){ unsigned long long r=1; for(int i=1;i<=n;++i){r*=i;} return r; } うん、簡単だね!
560 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 16:41:07.00 ID:Bd/2u4u/0.net] 毎回毎回コンパイラが計算するのか
561 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 17:05:53.05 ID:6zDmjp+70.net] たまにソースコードを見て、あ、この数字なんだっけって考えるよりも 10000回コンパイルさせるほうが早いと思うよ
562 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 17:18:40.81 ID:Dtt3qpb50.net] マジックナンバーの本質
563 名前:片山博文MZ mailto:sage [2018/03/11(日) 17:51:32.86 ID:4ez4tjCrd.net] >>540 オーバーフローのチェックがないからやり直し。
564 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 18:36:06.03 ID:i1Cv6XBY0.net] はーい constexpr unsigned long long unsafe_factorial(int n){ unsigned long long r=1; for(int i=1;i<=n;++i){r*=i;} return r; } constexpr int min_factorialable(){ for(int i=1;;++i){ if(unsafe_factorial(i) > unsafe_factorial(i+1)){ return i; } } } constexpr unsigned long long factorial(int n){ if (n < 0 || n > min_factorialable()) { return 0; } return unsafe_factorial(n); }
565 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 18:40:21.07 ID:i3q5YI3y0.net] コンパイルエラーになるほうがいいなぁ
566 名前:片山博文MZ mailto:sage [2018/03/11(日) 19:45:19.23 ID:4ez4tjCrd.net] static_assert使え。
567 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 20:16:22.23 ID:XWEx9Mlwd.net] >>529 実行時計算で答え算出してそれを貼った方が楽じゃね?
568 名前:デフォルトの名無しさん mailto:sage [2018/03/11(日) 21:15:39.44 ID:ezoYy+fr0.net] >>548 それで事足りるケースならそれでいいよ
569 名前:デフォルトの名無しさん [2018/03/11(日) 21:19:50.46 ID:0BygLdlM0.net] >>548 なんでそんなめんどくさくてミスしそうな方法をチョイスするんだよ
570 名前:デフォルトの名無しさん [2018/03/12(月) 01:21:50.18 .net] >>548 計算&書き換え手順をマニュアル化して、何十種類の仕向け別にバージョンアップの度に人海戦術で計算&書き換え&コードレビュー&テストするんですね、わかります
571 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 05:00:24.40 ID:kBVT8YZa0.net] min_factorialable() は、階乗を正しく計算できる最大の値を返す constexprな関数(コンパイル時にint定数に置き換えられることを期待)、 と読み取ったんだけど、なぜにmin_なの?
572 名前:デフォルトの名無しさん [2018/03/12(月) 05:41:37.75 .net] 上限を求めるときに使うのはminだから、かな 知らんけど
573 名前:デフォルトの名無しさん mailto:sage [2018/03/12(月) 06:20:08.42 ID:I9Is/5l40.net] 最初min_nonfactorialableでnon取った時に直し忘れました
574 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 09:59:46.06 ID:CGjn2uNbd.net] 一日の秒数を86400と書いてたらマジックナンバーやめろと言われたんだけど、 プログラムを少しでも書く人間にとってその数字は常識でいいよね? 60*60*24 と書いて「その60とか24は何だ?」と言われないでしょ? それと同じレベルだと思ってるんだけど。
575 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 10:10:13.70 ID:oQx4WixC0.net] うるう秒でクラッシュするクソソフトウェアの出来あがり ニュートン力学と天文学と暦学からやりなおした方がいい
576 名前:デフォルトの名無しさん [2018/03/13(火) 10:13:40.69 ID:bAh/W6qqd.net] >>555 言われないとわからない奴は言ってもわからないだろうから お前は一生マジックナンバー使いまくりでいいぞ
577 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 10:38:37.74 ID:pKedwP800.net] そろそろ標準に日付計算のライブラリ欲しいわ
578 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 11:02:13.56 ID:92t/zLSk0.net] >>558 欲しいね chronoが中途半端でイラつく
579 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 11:32:32.41 ID:CGjn2uNbd.net] >>556 それだと 60*60*24 と書いても同じだよね。 うるう秒とかは関係ない定数管理してる場合の話ですよもちろん。
580 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 11:37:27.38 ID:CGjn2uNbd.net] >>557 86400がプログラマの常識的にマジックナンバーなのかどうか、って話ですよ
581 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 11:45:44.57 ID:cL/fN0Uj0.net] 所で皆さんmakefileはどう編集してます あまり触れていないようなので気になります
582 名前:デフォルトの名無しさん [2018/03/13(火) 11:45:51.13 ID:92t/zLSk0.net] 2147483647なら俺の常識だが
583 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 11:47:54.17 ID:Hyr8QuVd0.net] >>562 趣味では汎用のmakefile作ってそれを使い回してる 仕事ではautotools
584 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 12:00:55.79 ID:qHQADaBY0.net] 他人と共有するコードならなるべく要素を分解して分かりやすく書いた方が好ましい 2の倍
585 名前:数も直接記述するのではなくシフト演算使った方が綺麗 [] [ここ壊れてます]
586 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 12:18:10.82 ID:23dHbGxb0.net] くくるんじゃなくて… クラス宣言 int main() {....} あとは c++ スレで
587 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 12:18:34.80 ID:23dHbGxb0.net] 誤爆しました
588 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 12:51:25.09 ID:YF2y/th/d.net] 常識なんて集団が変われば変わる そのコードを見せる事を想定した集団の常識かどうかを考えろ
589 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 14:10:31.07 ID:cL/fN0Uj0.net] 2進数8進数10進数16進数のみではないということ 60進数や24進数の話でしょ時計を語るときは必須の常識
590 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 14:26:54.36 ID:cL/fN0Uj0.net] これをn進数って言うんだよ
591 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 14:37:04.66 ID:CGjn2uNbd.net] 集団の常識ってことなら、'86400' をマジックナンバーと思ってる人間は少数派っぽいので、 文句はやんわりと無視する方向で行きますわ
592 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 14:53:30.50 ID:qHQADaBY0.net] というかマジックナンバー言われるのって数字の意味とか集団の常識とかじゃなく書式の問題だよね 計算式の中に定数ポン置きしてる書き方してる奴がチームにいたらそりゃマズいよ、変数とか定数に置き換えろって俺も言う
593 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 14:59:18.81 ID:qHQADaBY0.net] 定数を定数に置き換えるってなんだよ リテラルは定数なり変数なりにって感じで読み替えといて
594 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 15:34:48.40 ID:VrugGyEjd.net] >>572 しかしこうはしないだろ? const int int8_bits = 8; uint16_t word = (hi << int8_bits) | lo; こうもしない const int sec_per_min = 60; int sec = m * sec_per_min + s; 数値リテラルで書くのが許容される数値というものがある sec = day * 86400 はどうかというのが>>561 個人的には知らない人でも暗算もせずに初見で合ってるかどうかわかるか、 を基本にすべきだと思う (小さな2の冪乗は除く。2の冪乗知らん奴はシネ)
595 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 15:51:51.20 ID:92t/zLSk0.net] uint16_t word = (hi << CHAR_BIT) | lo; これCHAR_BIT != 8な環境を意識するんなら、16って書いてあるのも問題だね const int micro_per_sec = 1000000; int us = sec * micro_per_sec; こう書けって言われたら俺はお断りする
596 名前:デフォルトの名無しさん mailto:sage [2018/03/13(火) 16:10:54.91 ID:lXm9DcKjM.net] e = 2.71828; p = 3.1415;