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


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

C++相談室 part134



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;






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

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

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