- プログラミング雑談スレ♯++
389 :デフォルトの名無しさん[sage]:2014/05/20(火) 00:00:25.00 ID:KXJMtxo4 - >>385
アドレス空間が何種類あっても、アドレス値を取得した時点での用途と アドレス値を使用する時点での用途が一致してれば実用上は問題ないでしょ。 アドレス値の用途を一致させなかった場合の動作は不正になるけど、 それは自己書き換えなどアーキテクチャに依存する処理だったりするから動作する保障は元々無い。 >>386 ハーバードアーキテクチャはメモリ空間を分けることが高速化で有利とかもあった筈。 あとスタックオーバフローは大抵リターンアドレスの上書きにが先に起きるし、 バッファオーバフローの方がプログラムメモリを破壊しやすい気がするってのは重箱の隅。 >>387 ワンチップマイコンの場合はプログラムメモリはROMやFlashで、SRAMやEEPROMとは区別される事が多い。 その場合はアドレスバス幅を節約できるしハーバードアーキテクチャも合理的なんじゃないかな。
|
- スレを勃てるまでもないC/C++の質問はここで 22
44 :デフォルトの名無しさん[sage]:2014/05/20(火) 00:11:29.08 ID:KXJMtxo4 - >>41
素のCならTiny C Compilerを--runで動かすのがトライアンドエラーが早くて便利で、 コマンドプロンプトで「tcc.exe --run ソースコード.c」で実行ファイル作らずにコンパイルして動かせる。 Visual Studio使うならVisual Studio コマンドプロンプトってのがメニューに有るだろうからそれ使う。 「CL ソースコード.c」でコンパイルして作られた実行ファイルを実行すればいい。 ソースコードはメモ帳でも何でも適当なテキストエディタで拡張子を.cにしたファイルとして作ればいい。 Visual StudioのIDE使って開発してもいいけど、上手く行かなかったらしいから取り敢えず省略。 でもまずは取り敢えず適当なCの入門手引をWebサイトでも書籍でもいいから手に入れるべき。 あとはその手引に合わせた環境を用意するなり、使い方を読み替えて使う。 そもそも、なんでVSのProが入ってんだそのパソコン… 誰かが入れてくれたなら入れてくれた奴に聞くのが一番手っ取り早い気がする。
|
- スレを勃てるまでもないC/C++の質問はここで 22
46 :デフォルトの名無しさん[sage]:2014/05/20(火) 00:21:02.90 ID:KXJMtxo4 - >>45
全部が全部同じじゃないし、投稿時間だって10分も違わないし、レスが被るくらいでみみっちいこと言うなよ
|
- スレ立てるまでもない質問はここで 134匹目
220 :デフォルトの名無しさん[sage]:2014/05/20(火) 00:24:36.61 ID:KXJMtxo4 - JScript.NETなるものが既に存在する
JScriptはIEでお馴染みのJavaScriptエンジンでJScript.NETはJScriptベースの.NET言語の一つ
|
- プログラミング雑談スレ♯++
394 :デフォルトの名無しさん[sage]:2014/05/20(火) 05:39:41.83 ID:KXJMtxo4 - >>391
コード空間とデータ空間の区別だけなら用途(型情報)で判別できるから問題ないって話だよ? int *dataPtrにキャスト無しで代入できるのはデータ空間のアドレスだけだし、 int *dataPtrをキャスト無しで参照する文はデータ空間へのアクセスだけだ。 int(funcptr*)(int)も同じ。void*にキャストした結果同じ値になる位で、特に問題はない。 アセンブラ触ってりゃデータとコードでは使う命令からして違うってわかるだろうし、 x86の16bitモードでセグメントレジスタだって命令によってデフォルトのセグメントレジスタ違うわけで。
|
- プログラミング雑談スレ♯++
398 :デフォルトの名無しさん[sage]:2014/05/20(火) 18:26:14.29 ID:KXJMtxo4 - >>397
で、そうやって自動生成されたテーブルのアドレスを参照するポインタをどんな構文で取り出すっていうの? 各データ・コードをどの空間に配置するかはコンパイラやリンカは把握してるからそっちは取り違えたりはしないし、 (そもそもコード空間にデータとしてアクセス出来ない・コストが高い場合に勝手にコード空間に置く馬鹿はそうそういない) 配置する空間を明示しないでポインタ使うようなデータは型からそれが置かれる空間が推定できるから問題ないし、 ユーザがコード空間に配置することを指定したデータはユーザが責任持って始末するからやっぱり問題ない。 「配置する空間を明示しないで置かれたアドレスをポインタとして取得できるデータ・コード」 をどの空間に配置するかを定めないコンパイラなら変態ポインタが必要になるが、 どっちに配置するかデフォルトを決め打ちするコンパイラならそんな必要はない。
|
- スレを勃てるまでもないC/C++の質問はここで 22
56 :デフォルトの名無しさん[sage]:2014/05/20(火) 18:38:43.12 ID:KXJMtxo4 - delete a;を一行後ろに回さない限り、b!=aもb==aもありうる。
|