スレを勃てるまでもないC/C++の質問はここで 25 [隔離病棟]©2ch.net (467レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
260: 2018/01/25(木)22:18 ID:9MCrLTCo(1/6) AAS
組み込み環境に C++ のコードを移植しようとしているんだけど、質問ってここでしていいのかな。
RAM の容量が厳しいので、 Flash にデータを持つように改造したいと思っている。
で、これは、C++ 的には定数でデータを持つだけで実現できるらしい。幸い組み込み環境ではリードオンリーでよい。
普段 PC 環境なら計算量の多いコンストラクタを経て初期化しているあるクラスのインスタンス群を、
PC 環境上で初期化して各フィールドの値をダンプしておいて、
組み込み環境では各フィールドが const になるようにクラスを改造したうえで
何かの方法でコンストラクタをスキップしてやりたい。これでRAMも計算量も減らせたらいい。
思いついた方法は、シリアライザというかコードジェネレーターを用意してソースコード上に定数群をたくさん定義して、
MyType i { cDataA, cDataB, ... }, j { cDataO, cDataP, ... }; のような記述ができるようにする、という感じのもの。
ほかによく使われている方法はある? あるいは、アドレスのキャストか何かでインスタンスの初期化を完了できる黒魔法っぽい方法もあったりする?
261: 2018/01/25(木)22:22 ID:9MCrLTCo(2/6) AAS
って隔離スレなのか。まあ過去レス見た限りでは答えてくれているようなので… よろしくお願いします。
264: 2018/01/25(木)23:23 ID:9MCrLTCo(3/6) AAS
ありがとう
{ ... } の部分をプログラムからうまく生成する方法はなにかあるだろうか?
265: 2018/01/25(木)23:28 ID:9MCrLTCo(4/6) AAS
キャストで済んでいるのはとてもよさそうだけど、
PC 環境でのメモリ上での表現と組み込み環境でのメモリ上の表現は完全に一致するのだろうか。
アライメントというものがあるんだったような
269: 2018/01/25(木)23:46 ID:9MCrLTCo(5/6) AAS
まそうですよね。再びありがとう。
アライメントについては各環境で実験して (offsetof(MyData, ...) が一致するか) いけそうなら試してみる。
エンディアンとアライメント(バイト境界)が一致してればきっと大丈夫だよね
270: 2018/01/25(木)23:59 ID:9MCrLTCo(6/6) AAS
助かる、これでとんかつ定食でも食べてくれ っ [ぺいぱる]
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.022s