- 締切済み
VC++の文法で質問です
すみませんが教えて下さい。 仕事でVC++のプログラミングをするのですが学校で学んだわけではなく、C、C++、VC++も本やサイトを読んで作ったりした程度です(期間もまだ2か月程度) まだコードも読めないものが多く、つまづいてます。 失礼だとは思うのですがこのコードを どう読めばいいか教えて下さい。 情報取得してるようなのですがさっぱりわかりません。 どなたかお願いします。 memcpy(m_wPos, IniDateClass->GetIniFileDataWinPos(),sizeof(m_wPos));
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- jacta
- ベストアンサー率26% (845/3158)
基本的には既に回答が出ている通りです。 あとは、そのコードを書いたプログラマの力量にもよりますが... std::memcpyではなくmemcpyを使っているのは、Cとのソース共有を視野に入れているか、標準準拠度が低い古い処理系との互換性を視野に入れているかです。 また、std::copyではなくmemcpyを使っているのは、対象としているオブジェクトがC互換型(POD型)であり、反復子ではなくポインタであることをコードに語らせています。 さらに、代入ではなくmemcpyなのは、対象としているオブジェクトがスカラ型やクラス型(構造体)ではなく、配列であることを示唆しています。
- php504
- ベストアンサー率42% (926/2160)
No.4さんへ 普通に配列で宣言してあるのでしょう char m_wPos[256]; でsizeof(m_wPos)は256になります。
- machongola
- ベストアンサー率60% (434/720)
こんばんは。私の勘違いでしたら申し訳ありません。 このm_wPosはポインタだと思いますが、sizeof(m_wPos)ではなくてsizeof(*m_wPos)の間違いでは無いでしょうか? 仮に char* m_wPos; だった時、sizeof(m_wPos) == 4 で sizeof(*m_wPos) == 1 と言う事で、頭痛の種に成るのでは? ↓これの間違えなのでは?? memcpy(m_wPos, IniDateClass->GetIniFileDataWinPos(),sizeof(*m_wPos));
- type0(@type0)
- ベストアンサー率56% (344/611)
グーグルで「memcpy」と入力して検索すれば調べられますよ。 開発技術者を目指しているのであれば調査能力を養う事が大切です。 最初のうちはわからない事がわからないという状況だと思いますがそのうち慣れます。 頑張って良い技術者さんになってくださいね。
- neko1963
- ベストアンサー率49% (127/258)
memcpy バッファ間で文字をコピーします。 void *memcpy( void *dest, const void *src, size_t count ); dest コピー先のバッファ src コピー元のバッファ count コピーする文字数 解説 memcpy 関数は src から dest に count バイト数をコピーします
- επιστημη(@episteme)
- ベストアンサー率46% (546/1184)
ポインタ IniDateClass->GetIniFileDataWinPos() が指す sizeof(m_wPos) バイトの領域を ポインタ m_wPos の指す領域にコピーします。