- ベストアンサー
Cでのregisterについて
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
register記憶クラス指定子は、そのオブジェクトへのアクセスを可能な限り高速に行えるようにすることを示唆するためのものです。 実現方法は、必ずしもレジスタへ割付けである必要はありませんが、普通はプロセッサの汎用レジスタを使用します。汎用レジスタは、通常アドレスを持たない(持つものもある)ので、&演算子を使用することができません。 ちなみに、C++のregister記憶クラス指定子は、C言語との互換性のためだけに用意されたもので、auto記憶クラス指定子と同義ですから、&演算子を使うことができます。
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
register を指定すると、なるべくレジスタに変数を割り当てる (なるべくなので、かならず割り当てられるということではありません)ようにコンパイルされます。 レジスタは、一般的なメモリではないので、メモリに割り当てられた変数のようにアドレスを取り出すことができないのです。
お礼
お返事が遅れて大変申し訳ございませんでした。 参考となる回答をありがとうございました。
関連するQ&A
- i386は本当に汎用レジスタ?
素朴な疑問なので、「暇なときに回答ください」にしました WEBページを見ていると、i386アーキテクチャのAX,BX,CX,DX・・・が汎用レジスタであるという記述が目に付きます。 ここで、汎用レジスタを、まったく機能が同じで命令に直行性があるもの、と定義すると、i386のレジスタは汎用レジスタであるといえるのでしょうか? i386のプログラムでアセンブラで書かれたものがあるとして、ソースプログラムのたとえばAXとCXを入れ替えてアセンブルして出来たプログラムはもとのものとまったく同じ動作をするでしょうか? (システムコールの引数引渡しレジスタの役割が決まっているというのは別にして)。 ご先祖様の8086は違ったのは覚えているのですが(たとえばSIとDIの機能が違う)。i386になって、本当に直交した命令体系になったのか疑問に思っています。
- 締切済み
- その他(パソコン)
- [Smarty] register_objectでの配列の扱い
register_objectメソッドでテンプレートファイルに渡した配列にアクセスする方法がわかりません。 //PHPファイル register_object('data', $obj, 'array') //tplファイル 配列arrayの第一データは、{obj->array[0]}です。 //エラー 配列arrayの第一データは、{obj->array.0}です。 //エラー Smartyマニュアルに、register_objectメソッドについて、 『それはとてもセキュアで、 登録されたオブジェクトはいくつかのメソッドやプロパティを制限する事が出来ます。 しかし繰り返しの処理やオブジェクトの配列への割り当て等の事が出来ません。』 とありますが、これはregister_objectメソッドを使ってオブジェクトを渡す場合、配列にはアクセスできないということなのでしょうか? もし、そうであればassignを使うしかないのでしょうか?register_objectで書くほうがスマートなので、可能であればそちらを使いたいと思っています。 よろしくお願いします。
- ベストアンサー
- PHP
- レジスターについて質問です。
レジスターについて質問です。 レジスターには「飲食店向き」「物販店向き」などありますが、違いはなんでしょうか? 小規模の飲食店(40席程度)なら、物販向けを使用できますか? それとも、○○の機能が付いてない、等の制約があるのでしょうか? 宜しくお願いします
- ベストアンサー
- 財務・会計・経理
- ハイパースレディングのレジスタについて
ハイパースレディングのレジスタについて ハイパースレッデイングのCPUで2つのスレッドA,Bを動かすとする。 このときAの実行状態を示す汎用レジスタやプログラムカウンタと Bの実行状態を示す汎用レジスタやプログラムカウンタの扱いはどうなのでしょうか。 次の2つの方法が考えられる。 (1) レジスタのロード、実行、レジスタのセーブを繰り返す方法。 CPU内に高速なメモリを持ち、実行前にレジスタに値をロードして、命令を実行して、レジスタの値を保存を繰り返して、A,Bのスレッドを実行する方法。 (2) A用のレジスタとB用のレジスタを2組用意して、相互に切り替えながら実行する方法。 Aを実行するときはA用のレジスタを使用して、Bを実行するときはB用のレジスタを使用する方法。 の2つが考えられるが、それとも他の方法があるのでしょうか。 それに関連して、1度に実行する機械語命令の個数はいくつなのでしょうか。 スレッドAの機械語命令を実行して、切り替えてBの機械語命令を実行するときに、 Aの1命令を実行してから、Bの1命令を実行する。1命令毎に切り替えるのでしょうか、 それともAの数個の命令を実行してから、Bの数個の命令を実行するのでしょうか。 このときスレッドを切り替える際に1度に実行する機械語命令の個数はいくつでしょうか。 ご存知の方がおりましたら、教えて下さい。
- ベストアンサー
- その他(パソコン)
- レジスターの売り上げ記録の消去について教えてほしいのですが、レジスター
レジスターの売り上げ記録の消去について教えてほしいのですが、レジスターをリース契約で使っていましたが、ルース期間終了のため返却しなくてはなりません。しかし、リース会社側から売り上げ等のデータを消去してから、返さないとならないのですが、消去の仕方が分かりません。取り扱い説明書はありますが、データの消去の方法は載っていません。リース会社側にデータの消去を頼むこともできますが、不景気の折、経費節約ため自分でやりたのです。よろしくお願いします。当方、パソコン関係の知識は初心者クラスです。レジスターの機種は、アスター、C-REG21、型式はC21MSです。
- ベストアンサー
- 財務・会計・経理
- C++ ってなんて読む?
本当に素朴な疑問ですが…… 「C++」ってなんて読むんですか? シープラスプラス? シーダブルプラス? どうでもいいようなことですが、結構気になっているので誰か教えてください。
- ベストアンサー
- C・C++・C#
- register_globalsについて
こんにちわ。お世話になってます。 register_globalsについての質問なのですが、現在、PHP3で書かれたソースをPHP4のregister_globalsを使ったものに書き換えています。 そこで、ファイルのアップロードに関するところで、 <FORM ENCTYPE="multipart/form-data" ACTION="ext_kakunin.php3" METHOD="POST"> <TABLE border="0" cellspacing="0" cellpadding="0"> <TR> <TD>CSV</TD> <TD ALIGN=center width=20>:</TD> <TD><INPUT TYPE=FILE SIZE=50 NAME="csv"></TD> </TR> <TR> <TD> </TD><TD> </TD> <TD><FONT size=3color=#FFFFCB>c:\_sa\re\re.csv</FONT></TD> </TR> </form>
- ベストアンサー
- PHP
- アスターのレジスターが壊れました
今、使用しているアスターのレジスターが壊れました! 古いものなので、とうとうこの日がやって来たって言う感じです! 新しい物を買う事にしましたが 今まで使っているハンドスキャナーはどのメーカーの物にも 取り付くのでしょうか? また取り付いたとしても対応してくれるのでしょうか? 全くの無知なんで 分かる方はお願いします
- ベストアンサー
- その他(インターネット・Webサービス)
お礼
お返事が遅れて大変申し訳ございませんでした。 参考となる回答をありがとうございました。