エスケープシーケンスやWin32APIなどの環境依存なものもOK
そのような質問は必ず環境を書きましょう
半角空白やタブでのインデントはスレに貼ると無くなります
コードを貼れる所
http://codepad.org/
https://ideone.com/
前スレ
【初心者歓迎】C/C++室 Ver.101【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1500329247/
探検
【初心者歓迎】C/C++室 Ver.102【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2017/11/04(土) 16:33:35.07ID:NYxCuvMY400デフォルトの名無しさん
2018/03/30(金) 12:43:29.07ID:HVaF4kSp >>398はMCU/DSPくらいの話
401デフォルトの名無しさん
2018/03/30(金) 12:47:07.67ID:TqB3XhjJ どれぐらいのDSP?
ADSP-21573ぐらい
ADSP-21573ぐらい
402デフォルトの名無しさん
2018/03/30(金) 13:46:55.20ID:8epIcCej STLってC#のLinq並みに表現力があるんだろうか? Linqは最初嫌いだったが使い始めて
見ると非常に便利で驚いた。C++のSTLは全然しらなかったがWikiを読んだらなんかかなり魅力
的に見えてきた。
見ると非常に便利で驚いた。C++のSTLは全然しらなかったがWikiを読んだらなんかかなり魅力
的に見えてきた。
403デフォルトの名無しさん
2018/03/30(金) 13:52:10.17ID:Wx9gH+Ym 内部で new / delete 使用している stl は使わないリストに入れず
new / delete は使わないリストに入れんのかよ…
new / delete は使わないリストに入れんのかよ…
404デフォルトの名無しさん
2018/03/30(金) 14:08:56.04ID:2gx9kNrJ STLコンテナとSTLアルゴリズム
どっちの話をしているんだ
どっちの話をしているんだ
405デフォルトの名無しさん
2018/03/30(金) 14:25:29.65ID:FxYI+k+J コンテナ使わない有用なアルゴリズムってあるか
あるなら使いたいからご教授ください
min とかあるか
あるなら使いたいからご教授ください
min とかあるか
406デフォルトの名無しさん
2018/03/30(金) 16:24:55.88ID:HVaF4kSp >>403
内部でnew/deleteしてるものは当然含まれる
当たり前
そもそもヒープエリア自体無かったりするし
あってもアロケートのみで解放機能が無かったりする
小規模組み込みでメモリを確保出来ないなんてことは想定しないし
確保解放のコストもバカにならない
アドレス変換が無いから隙間だらけで連続領域が取れなくなるなんてことも心配したくない
内部でnew/deleteしてるものは当然含まれる
当たり前
そもそもヒープエリア自体無かったりするし
あってもアロケートのみで解放機能が無かったりする
小規模組み込みでメモリを確保出来ないなんてことは想定しないし
確保解放のコストもバカにならない
アドレス変換が無いから隙間だらけで連続領域が取れなくなるなんてことも心配したくない
407デフォルトの名無しさん
2018/03/31(土) 14:52:31.93ID:2aV4tUPq 組み込みって未だにそんなメモリかつかつなの?
408デフォルトの名無しさん
2018/03/31(土) 17:31:27.59ID:aygih7Tk >>407
そりゃ規模による
そりゃ規模による
409デフォルトの名無しさん
2018/03/31(土) 17:45:54.96ID:OaeapR1O410デフォルトの名無しさん
2018/04/02(月) 16:24:48.19ID:MJzKsai7 ヘッダファイルを作るときに、2重インクルードを防止するための対策を書けと本に書いてあります。
注意していれば、2重インクルードをせずに済むにもかかわらずなぜ、このような
対策をしなければならないのでしょうか?
注意していれば、2重インクルードをせずに済むにもかかわらずなぜ、このような
対策をしなければならないのでしょうか?
412デフォルトの名無しさん
2018/04/02(月) 16:40:04.72ID:3MXga4hP 注意していれば防げるミスは、いつか必ず発生する
413デフォルトの名無しさん
2018/04/02(月) 16:42:16.37ID:r6uHUG7/ 2重includeに気付いてからでも遅くない
414デフォルトの名無しさん
2018/04/02(月) 20:45:42.01ID:JDmrHTz8 >>410
複数のヘッダで共通のヘッダの定義が必要な場合を考えてみようか
複数のヘッダで共通のヘッダの定義が必要な場合を考えてみようか
415デフォルトの名無しさん
2018/04/02(月) 20:57:46.72ID:MJzKsai7 header_1
header_2
…
header_n
で共通に必要なヘッダ header_a がある。
header_1
header_2
…
header_n
のそれぞれの中で header_a をインクルードしている。
header_i と header_j (i ≠ j) が必要なファイル file1 がある。
というような状況でしょうか? 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
header_2
…
header_n
で共通に必要なヘッダ header_a がある。
header_1
header_2
…
header_n
のそれぞれの中で header_a をインクルードしている。
header_i と header_j (i ≠ j) が必要なファイル file1 がある。
というような状況でしょうか? 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
416デフォルトの名無しさん
2018/04/02(月) 21:43:19.92ID:JDmrHTz8 あなたはstdlib.hとstdio.hの作者です
stdlib.hとstdio.hの両方でerrno.hが必要だとします
あなたはstdlib.h stdio.hの中でerrno.hをインクルードしますか?しませんか?
stdlib.hとstdio.hの両方でerrno.hが必要だとします
あなたはstdlib.h stdio.hの中でerrno.hをインクルードしますか?しませんか?
417デフォルトの名無しさん
2018/04/02(月) 22:36:25.27ID:7E1ezZvV >>416
入門書にこう書きます
「studio.h や stdlib.h をインクルードする際には、事前に errno.h をインクルードすること」
どうかなとは思うが実際こういう流儀でヘッダーファイル書く人も見かける
入門書にこう書きます
「studio.h や stdlib.h をインクルードする際には、事前に errno.h をインクルードすること」
どうかなとは思うが実際こういう流儀でヘッダーファイル書く人も見かける
418片山博文MZ ◆T6xkBnTXz7B0
2018/04/02(月) 22:37:53.93ID:APYGmZJZ スタジオじゃなくてスタンダード・アイオーや
419デフォルトの名無しさん
2018/04/02(月) 22:38:24.97ID:7E1ezZvV ごめんごめん
420デフォルトの名無しさん
2018/04/02(月) 22:51:41.33ID:Y3fpn4XN なんで前半はフルで後半は省略したの?
421片山博文MZ ◆T6xkBnTXz7B0
2018/04/02(月) 22:58:42.67ID:APYGmZJZ アイオー、アイオー、声を上げて
422片山博文MZ ◆T6xkBnTXz7B0
2018/04/02(月) 23:06:11.93ID:APYGmZJZ Input/Output、日本語では入出力
423デフォルトの名無しさん
2018/04/02(月) 23:10:11.92ID:yv4S6fVx 関数名にしろヘッダーにしろ6文字の縛りって何か歴史的理由があったのだろうか?
424片山博文MZ ◆T6xkBnTXz7B0
2018/04/02(月) 23:22:51.53ID:APYGmZJZ fprintfは、7文字。
425デフォルトの名無しさん
2018/04/02(月) 23:23:14.96ID:yv4S6fVx あー
426片山博文MZ ◆T6xkBnTXz7B0
2018/04/02(月) 23:26:45.74ID:APYGmZJZ vfprintfは八文字。文字数削るメリットがあった時代だったからな。
427デフォルトの名無しさん
2018/04/02(月) 23:48:48.36ID:OHYuqcPP >>423
つ FORTRAN77
つ FORTRAN77
428デフォルトの名無しさん
2018/04/02(月) 23:55:39.95ID:d0d9WT+s >>423
FORTRAN77は識別子の長さが6文字以下とかの制限があったからそれに倣ったんじゃないかな
FORTRAN77は識別子の長さが6文字以下とかの制限があったからそれに倣ったんじゃないかな
429デフォルトの名無しさん
2018/04/02(月) 23:57:30.68ID:yv4S6fVx ありがとう FORTRAN からの流れですか
430デフォルトの名無しさん
2018/04/03(火) 00:51:55.59ID:cU9BUIMs >>416-417
プリコンパイルヘッダが汚れたり無駄にでかくなったりするからな
プリコンパイルヘッダが汚れたり無駄にでかくなったりするからな
431デフォルトの名無しさん
2018/04/03(火) 01:02:56.47ID:FKLo0jPW 以下のboost::factoryを使う練習用コードにおいて
https://wandbox.org/permlink/K1TIhC61VQztTbOd
map<string, boost::function<base* (int)>> factories;
とするとコンパイルエラーになり、ググって見つけた方法で
map<string, boost::function<base* (int const&)>> factories;
とすると何故かコンパイルが通り、問題なく動作します。
コンストラクタの引数が実際の int ではなぜ駄目なんでしょうか?
https://wandbox.org/permlink/K1TIhC61VQztTbOd
map<string, boost::function<base* (int)>> factories;
とするとコンパイルエラーになり、ググって見つけた方法で
map<string, boost::function<base* (int const&)>> factories;
とすると何故かコンパイルが通り、問題なく動作します。
コンストラクタの引数が実際の int ではなぜ駄目なんでしょうか?
432デフォルトの名無しさん
2018/04/03(火) 01:48:18.62ID:JvEghgri >>417
実装依存のヘッダファイルの場合とか、ユーザに事前にincludeしろとは言えないケースもあるよ
実装依存のヘッダファイルの場合とか、ユーザに事前にincludeしろとは言えないケースもあるよ
433デフォルトの名無しさん
2018/04/03(火) 02:16:15.79ID:1GcrBwMo stackoverflow では boost::factory が引数の参照渡しを前提にしてるから、とあるな。
実際 factory 以外の普通の関数なら問題ないし
実際 factory 以外の普通の関数なら問題ないし
434デフォルトの名無しさん
2018/04/03(火) 02:31:59.43ID:uUh7wFma dxd9みたいにincludeすると可笑しくなるヘッダもあるしなーω
435デフォルトの名無しさん
2018/04/03(火) 08:56:24.86ID:1fV6RHaF436デフォルトの名無しさん
2018/04/03(火) 11:32:26.11ID:R6gDm2yr _st とか _s とかごちゃごちゃ付き始めたころからつまらなくなった
437デフォルトの名無しさん
2018/04/03(火) 11:42:41.83ID:MWvT17WL ほんとそれ
438デフォルトの名無しさん
2018/04/03(火) 11:43:28.33ID:Z1fbtkqU >>433
公式ドキュメントにはさらりと「技術的理由によりfunction objectに渡す引数はlvalueでないと駄目」と書いてあるのみなので、さっぱり理解できませんでした。
そもそもコンストラクタbase (int const&)は定義していないのにコンパイルが通るのが不思議・・・
結局 boost::bind(boost::factory<derived*>(), _1); が何しているのか理解しないと先に進めなそうですね。
公式ドキュメントにはさらりと「技術的理由によりfunction objectに渡す引数はlvalueでないと駄目」と書いてあるのみなので、さっぱり理解できませんでした。
そもそもコンストラクタbase (int const&)は定義していないのにコンパイルが通るのが不思議・・・
結局 boost::bind(boost::factory<derived*>(), _1); が何しているのか理解しないと先に進めなそうですね。
439デフォルトの名無しさん
2018/04/03(火) 12:17:26.04ID:1GcrBwMo そこ bind しなくてもいいんじゃないだろうか
440デフォルトの名無しさん
2018/04/03(火) 13:48:08.68ID:Z1fbtkqU >>439
引数のある関数の場合はboost::bindを使うのではないでしょうか?
いちおう公式にもその例が書いてあります。
ちなみにどんぴしゃな質問がstackoverflowにあり、Answerには親切にDemoまで付けてくれてて、
速攻で解決したと糠喜びしたんですが見事にコンパイルエラーでした。
https://stackoverflow.com/questions/37137117/passing-arguments-in-constructor-with-boost-factory
引数のある関数の場合はboost::bindを使うのではないでしょうか?
いちおう公式にもその例が書いてあります。
ちなみにどんぴしゃな質問がstackoverflowにあり、Answerには親切にDemoまで付けてくれてて、
速攻で解決したと糠喜びしたんですが見事にコンパイルエラーでした。
https://stackoverflow.com/questions/37137117/passing-arguments-in-constructor-with-boost-factory
441デフォルトの名無しさん
2018/04/03(火) 15:04:56.72ID:rDNMxPWT >>440
引数を部分的に何かにbindしたfunctionを作るのがbindなわけで、
(add(a,b) の a だけ1にbindしてadd1を作るとか)
何もbindせず引数の順序も同じなら
factories["derived"] = boost::factory<derived*>();
で良い
引数を部分的に何かにbindしたfunctionを作るのがbindなわけで、
(add(a,b) の a だけ1にbindしてadd1を作るとか)
何もbindせず引数の順序も同じなら
factories["derived"] = boost::factory<derived*>();
で良い
442デフォルトの名無しさん
2018/04/04(水) 23:06:46.13ID:t1HAuKeq >>441
確かにbindのそもそもの目的はそれですよね>(add(a,b) の a だけ1にbindしてadd1を作るとか)
仰る通りの書き方でコンパイルも実行も通りました。
ただ、ググった限り引数のある場合はbindをかます例しか見つからなかったです。
「bindが必要」と明言してる人すらいて、結局よくわからないです・・・
その後、いくらコンパイルも実行も問題ないとはいえ実際のコンストラクタとは違うのを
boost::function<〜> に指定するのはなんとも気持ち悪く思い、試行錯誤したところ
boost::forward_adapter を使う方法を見つけました。
https://wandbox.org/permlink/D3Q75cgRNR43Nulc
ヒントとなったのは以下のサイトでした。
https://lists.boost.org/Archives/boost/2017/02/232695.php
正直なぜこれで通るのか完全には理解していませんが、とりあえずの解決とします。
ご助言どうもありがとうございました。
確かにbindのそもそもの目的はそれですよね>(add(a,b) の a だけ1にbindしてadd1を作るとか)
仰る通りの書き方でコンパイルも実行も通りました。
ただ、ググった限り引数のある場合はbindをかます例しか見つからなかったです。
「bindが必要」と明言してる人すらいて、結局よくわからないです・・・
その後、いくらコンパイルも実行も問題ないとはいえ実際のコンストラクタとは違うのを
boost::function<〜> に指定するのはなんとも気持ち悪く思い、試行錯誤したところ
boost::forward_adapter を使う方法を見つけました。
https://wandbox.org/permlink/D3Q75cgRNR43Nulc
ヒントとなったのは以下のサイトでした。
https://lists.boost.org/Archives/boost/2017/02/232695.php
正直なぜこれで通るのか完全には理解していませんが、とりあえずの解決とします。
ご助言どうもありがとうございました。
444デフォルトの名無しさん
2018/04/05(木) 07:41:24.21ID:ev3xPrwL >>443
公式ドキュメントはこれです。
https://www.boost.org/doc/libs/1_66_0/libs/functional/factory/doc/html/index.html
ここに以下のような「stringキーzとコンストラクタのmapにコンストラクタを登録」するという方法が書いてあればよかったのですが・・・
map<string, boost::function<〜>> factories;
factories["derived"] = 〜
でもboostの公式ドキュメントはこんなものというか、隅から隅まで説明しないわからない素人はお断りってやつですよね。
公式ドキュメントはこれです。
https://www.boost.org/doc/libs/1_66_0/libs/functional/factory/doc/html/index.html
ここに以下のような「stringキーzとコンストラクタのmapにコンストラクタを登録」するという方法が書いてあればよかったのですが・・・
map<string, boost::function<〜>> factories;
factories["derived"] = 〜
でもboostの公式ドキュメントはこんなものというか、隅から隅まで説明しないわからない素人はお断りってやつですよね。
445デフォルトの名無しさん
2018/04/05(木) 14:37:25.23ID:LhrJ/WaU 質問です.
以下のようなことが書いてあるファイルを読み込んで,
文字列,数値,...,数値,数値...数値
...
str, a[0],...a[n-1],b[0],...b[m-1]
という配列に入れたいです.
nとmは可変の場合,どうすればよいか教えてください.
スッキリとした書き方が知りたいです.
std::string str;
double a[n],b[m];
です.
以下のようなことが書いてあるファイルを読み込んで,
文字列,数値,...,数値,数値...数値
...
str, a[0],...a[n-1],b[0],...b[m-1]
という配列に入れたいです.
nとmは可変の場合,どうすればよいか教えてください.
スッキリとした書き方が知りたいです.
std::string str;
double a[n],b[m];
です.
446デフォルトの名無しさん
2018/04/05(木) 14:51:56.82ID:8vk43UVU std::string知ってるなら
std::vectorを使えば早かろう
std::vector<double> a, b;
a.resize(n);
b.resize(m);
a[0] = ...
std::vectorを使えば早かろう
std::vector<double> a, b;
a.resize(n);
b.resize(m);
a[0] = ...
447デフォルトの名無しさん
2018/04/05(木) 14:54:56.53ID:AQLHpii5 可変の n, m が読み込む前に確定するのか
ファイルの記述内容から n, m が確定するのか
ファイルの記述内容から n, m が確定するのか
448445
2018/04/05(木) 15:16:31.21ID:LhrJ/WaU449デフォルトの名無しさん
2018/04/06(金) 18:11:46.66ID:CDFchtjR void Show(const IntArray& array){
...
}
というような関数内で、 array の const メンバ関数ではないメンバ変数を変更しないメンバ関数を
使っているとコンパイルエラーになりますが、それはなぜでしょうか?
コンパイラーはarrayのメンバ関数がメンバ変数を変更していないことはソースコードから
分かるのではないでしょうか?
そういうチェックをするコンパイラを作るのは難しいからということでしょうか?
...
}
というような関数内で、 array の const メンバ関数ではないメンバ変数を変更しないメンバ関数を
使っているとコンパイルエラーになりますが、それはなぜでしょうか?
コンパイラーはarrayのメンバ関数がメンバ変数を変更していないことはソースコードから
分かるのではないでしょうか?
そういうチェックをするコンパイラを作るのは難しいからということでしょうか?
450デフォルトの名無しさん
2018/04/06(金) 18:16:26.47ID:CDFchtjR const メンバ関数の中でメンバ変数の内容を変更しているとコンパイルエラーになります。
ということはどのみちメンバ変数を変更しているかどうかはチェック可能ということですよね?
ということはどのみちメンバ変数を変更しているかどうかはチェック可能ということですよね?
451デフォルトの名無しさん
2018/04/06(金) 18:17:58.47ID:KjpzCJso void Show(IntArray& const array)
452デフォルトの名無しさん
2018/04/06(金) 19:04:45.09ID:zGB1Hjc3453デフォルトの名無しさん
2018/04/06(金) 19:43:28.40ID:EFVHWowI454デフォルトの名無しさん
2018/04/07(土) 02:18:30.08 >>449
メンバ変数を変更しないなら素直にメンバ関数にconst付けれや
メンバ変数を変更しないなら素直にメンバ関数にconst付けれや
455デフォルトの名無しさん
2018/04/07(土) 12:11:18.49ID:BRhgC8GS コンタミュ連鎖地獄ω
456デフォルトの名無しさん
2018/04/08(日) 06:44:19.17ID:fQMOYFpe457デフォルトの名無しさん
2018/04/08(日) 07:56:39.59ID:peS6i82l C#のフォームからオフィスを立ち上げ、オフィスを終了したら立ち上げたフォームに
戻るようにするにはどうした出来ますか?
戻るようにするにはどうした出来ますか?
458デフォルトの名無しさん
2018/04/08(日) 08:06:10.70ID:hcdQKQ5m >>457
COM使えばできるけど、スレタイも読めないお前にできるかどうかはわからん
COM使えばできるけど、スレタイも読めないお前にできるかどうかはわからん
459デフォルトの名無しさん
2018/04/08(日) 08:13:28.62ID:peS6i82l そんなことは当たり前ですね。その方法が説明できますか?
460デフォルトの名無しさん
2018/04/08(日) 08:25:17.68ID:28momF5z >>459
できるがスレチだからな
できるがスレチだからな
461デフォルトの名無しさん
2018/04/08(日) 08:29:30.70ID:fQMOYFpe C#のことはC#のスレッドで尋ねればいいでしょ、てお話。
C/C++のスレッドに質問を持ち込むより確実で早いと思うよ。
C/C++のスレッドに質問を持ち込むより確実で早いと思うよ。
462デフォルトの名無しさん
2018/04/08(日) 08:37:40.87ID:peS6i82l あ、ごめん。++が#に見えた。でも普通は++を#に書き間違ったんだろうと判断すると
思うが。
思うが。
463デフォルトの名無しさん
2018/04/08(日) 08:39:38.92ID:peS6i82l ところでC++のフォームからオフィスを立ち上げ、オフィスを終了したら立ち上げたフォームに
戻るようにするにはどうした出来ますか?
戻るようにするにはどうした出来ますか?
464デフォルトの名無しさん
2018/04/08(日) 08:44:37.90ID:TD+h4nB6 >>462
判断する訳ねーだろガイジか
判断する訳ねーだろガイジか
465デフォルトの名無しさん
2018/04/08(日) 08:50:08.72ID:D3gITJpj >>463
CreateProcess() win32API スレへgo
CreateProcess() win32API スレへgo
466デフォルトの名無しさん
2018/04/08(日) 08:56:58.76ID:peS6i82l >>465 thanks yey!
467デフォルトの名無しさん
2018/04/08(日) 08:58:12.94ID:hcdQKQ5m468デフォルトの名無しさん
2018/04/08(日) 09:14:13.86ID:peS6i82l >>464
it is conditional on your ability, although its mean applying in the case of a usual Japanese.
it is conditional on your ability, although its mean applying in the case of a usual Japanese.
469デフォルトの名無しさん
2018/04/08(日) 09:23:25.66ID:tUhRYmJS 真性の障害者手帳持ちだったか
470デフォルトの名無しさん
2018/04/08(日) 09:44:32.26ID:nHJNjK41 main関数の中でstaticを使う意味は何でしょうか?
ロベールの本のpp.318-319にそのような例が出てきて意味不明です。
ロベールの本のpp.318-319にそのような例が出てきて意味不明です。
471デフォルトの名無しさん
2018/04/08(日) 11:18:10.91ID:4aXSD6ZQ キチガイに触るな
472デフォルトの名無しさん
2018/04/08(日) 11:47:04.28ID:fQMOYFpe ロベールの本を持ってないんで、適切な回答じゃないかもしれんが。
main() 関数の中でstatic変数を使う意味といえば、
単純型の初期化の処理時間を回避したいか、
セクション(変数のメモリ配置)の説明のためか、
「staticなインスタンスのコンストラクタはmain()より前に実行される」
ていう話の前フリかなぁ。
main() 関数の中でstatic変数を使う意味といえば、
単純型の初期化の処理時間を回避したいか、
セクション(変数のメモリ配置)の説明のためか、
「staticなインスタンスのコンストラクタはmain()より前に実行される」
ていう話の前フリかなぁ。
473はちみつ餃子 ◆8X2XSCHEME
2018/04/08(日) 13:50:30.74ID:RvzgDq0H474デフォルトの名無しさん
2018/04/08(日) 14:41:24.43ID:b4O4Usd0 普通に考えると、
単にスコープをローカルにしたいってのがまず考えられる
単にスコープをローカルにしたいってのがまず考えられる
475デフォルトの名無しさん
2018/04/08(日) 14:46:24.29ID:drN9+cfC476デフォルトの名無しさん
2018/04/08(日) 15:12:26.18ID:nkM5b3tX477デフォルトの名無しさん
2018/04/08(日) 15:18:18.11ID:4aXSD6ZQ 覗きでもやってんのか?
478デフォルトの名無しさん
2018/04/08(日) 15:20:01.32ID:drN9+cfC >>474は
関数内でstatic変数を使うのは静的変数のスコープを関数ローカルにしたいからでは、
というごく当たり前の文意だろ普通に読むと。
どう読むと
関数内だからファイルローカルの話とか関係ない!勘違いするな!となるんだよ
自分以外は文法もセマンティックもろくに知らないという前提はやめるべき
関数内でstatic変数を使うのは静的変数のスコープを関数ローカルにしたいからでは、
というごく当たり前の文意だろ普通に読むと。
どう読むと
関数内だからファイルローカルの話とか関係ない!勘違いするな!となるんだよ
自分以外は文法もセマンティックもろくに知らないという前提はやめるべき
479デフォルトの名無しさん
2018/04/08(日) 20:18:51.07ID:B7amW+qm >>470
スコープはmaim( )内にしたいけどスタックは使いたくないってケースかな
スコープはmaim( )内にしたいけどスタックは使いたくないってケースかな
480はちみつ餃子 ◆8X2XSCHEME
2018/04/09(月) 01:15:21.26ID:fbTUuQs/ >>470
ウェブ版をざっと探してみたら main 内で satatic 変数を使ってるのはこれだけだったんだけど、
これのことか?
http://www7b.biglobe.ne.jp/~robe/cpphtml/html02/cpp02037.html
ウェブ版をざっと探してみたら main 内で satatic 変数を使ってるのはこれだけだったんだけど、
これのことか?
http://www7b.biglobe.ne.jp/~robe/cpphtml/html02/cpp02037.html
481472
2018/04/09(月) 08:00:59.66ID:4Qmw3/oH 関数スコープのstaticなクラス・インスタンスのコンストラクタは
main()以前でなく、最初にその部分が実行されたときに初期化されるんだっけか。
static なら一律にmain()の前、基本型や単純な構造体のstaticはロード時に初期化、
だと勘違いしていた。
訂正してくれてありがとう。そして間違ったことを書いてすまぬ。
main()以前でなく、最初にその部分が実行されたときに初期化されるんだっけか。
static なら一律にmain()の前、基本型や単純な構造体のstaticはロード時に初期化、
だと勘違いしていた。
訂正してくれてありがとう。そして間違ったことを書いてすまぬ。
482デフォルトの名無しさん
2018/04/09(月) 08:28:16.55ID:arNj8dw4 初期化が固定データのメモリコピーで済むものはロード時に初期化するコンパイラが普通
483デフォルトの名無しさん
2018/04/09(月) 14:14:56.77ID:iBEYls0Z いつやっても同じものはいつやっても同じだからな
484デフォルトの名無しさん
2018/04/09(月) 15:10:57.47ID:cuDt6une >>480
ありがとうございます。本とは内容が違うようです。
int main() {
static const double ARRAY1[] = {1, 2, 3, -1};
static const double ARRAY2[] = {0.5, 1.5, ,-1};
static const double ARRAY3[] = {-1};
static const double* const ARRAY[] = {ARRAY1, ARRAY2, ARRAY3};
…
}
というコードが該当箇所です。
ありがとうございます。本とは内容が違うようです。
int main() {
static const double ARRAY1[] = {1, 2, 3, -1};
static const double ARRAY2[] = {0.5, 1.5, ,-1};
static const double ARRAY3[] = {-1};
static const double* const ARRAY[] = {ARRAY1, ARRAY2, ARRAY3};
…
}
というコードが該当箇所です。
485片山博文MZ ◆T6xkBnTXz7B0
2018/04/09(月) 15:13:59.63ID:4wbW7ji0 staticを付けなければスタックに確保されるかもしれない。その場合、どうしても遅くなる。
486デフォルトの名無しさん
2018/04/09(月) 15:16:14.76ID:cuDt6une487デフォルトの名無しさん
2018/04/09(月) 15:31:05.83ID:iBEYls0Z488デフォルトの名無しさん
2018/04/09(月) 15:38:58.45ID:7w9BViIO 定数だからstatic constにした
というだけのことでそれ以上の意味はないと思うが
というだけのことでそれ以上の意味はないと思うが
489デフォルトの名無しさん
2018/04/09(月) 15:39:52.73ID:Cpp6LEO8 その変数をコンパイル時点で確定しようとしている。
ローディング時間も早くなる
ローディング時間も早くなる
490はちみつ餃子 ◆8X2XSCHEME
2018/04/09(月) 15:40:56.15ID:fbTUuQs/491デフォルトの名無しさん
2018/04/09(月) 15:57:19.85ID:XexqtlKa492デフォルトの名無しさん
2018/04/09(月) 16:42:59.75ID:cuDt6une クラスの定義をヘッダファイルに書くときに、
privateなメンバまで書くのはなぜですか?
必要ないように思います。
privateなメンバまで書くのはなぜですか?
必要ないように思います。
493デフォルトの名無しさん
2018/04/09(月) 16:45:14.78ID:cuDt6une494デフォルトの名無しさん
2018/04/09(月) 16:46:43.49ID:cuDt6une495デフォルトの名無しさん
2018/04/09(月) 16:48:38.97ID:EW8VU1tO sizeof で大きさ取れなくなるね
496デフォルトの名無しさん
2018/04/09(月) 16:50:38.53ID:cuDt6une498デフォルトの名無しさん
2018/04/09(月) 18:17:18.89ID:R2K+YmFs >>493
あの部分では特別に速度を意識した記述ではなく普通に意識する程度の事だから一々説明されないということではないかな
速度や使用メモリを気にするのはCやC++プログラマの癖または習慣みたいなもので特にロベールみたいな昔の人は体に染み付いているだろうからね
あの部分では特別に速度を意識した記述ではなく普通に意識する程度の事だから一々説明されないということではないかな
速度や使用メモリを気にするのはCやC++プログラマの癖または習慣みたいなもので特にロベールみたいな昔の人は体に染み付いているだろうからね
499デフォルトの名無しさん
2018/04/09(月) 18:28:43.00ID:arNj8dw4 >>493
今回はたまたまmainであり、
たまたま小さなデータだったというだけで、
より汎用性の高いコードにするのはプログラミングの基本
staticを付けるメリットは
・データ構造の初期化が1回(ROMだと0回)で済む
・スタックを浪費しない
・関数を抜けてもデータが保持される
・番地が固定
デメリットは
・関数を通らなくても初期化される
・関数外でもメモリを使う
今回はたまたまmainであり、
たまたま小さなデータだったというだけで、
より汎用性の高いコードにするのはプログラミングの基本
staticを付けるメリットは
・データ構造の初期化が1回(ROMだと0回)で済む
・スタックを浪費しない
・関数を抜けてもデータが保持される
・番地が固定
デメリットは
・関数を通らなくても初期化される
・関数外でもメモリを使う
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★2 [蚤の市★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【悲報】維新の政治資金でガールズバー、高市首相「良いか悪いかは国民の皆さまが判断されること」 [115996789]
- 【マギレコ】VIPでマギアレコード&マギアエクセドラ【まどドラ】
- 中国人、ガチ超正論。「日本人がアイヌに対してやったことを『問題ない』とするなら、中国が日本人に同じことをしても文句ないだろう?」 [314039747]
- 【速報】俳優の三浦春馬さん、自宅で死亡 自殺とみられる←この衝撃を超える速報テロ、いまだない
- 衛生的に気持ち悪くて性風俗店行ったこと無いんだ
- 【悲報】タンパク質さん、寿命を縮めることが判明
