タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

volatileに関するucqのブックマーク (2)

  • 「組み込み」ならではの基礎知識 ――スタートアップ・ルーチンからハードウェアまで

    4 volatileを指定したくなるとき volatileということばを聞いたことがありますか?また,volatileの使いかたを知っている人はいますか?volatileは,C言語の解説書ではあまり詳しく説明されていませんが,組み込みソフトウェアでは必須です. volatileは型修飾子の一つです.型修飾子は型の持つ性質を表すものです.volatileの仲間にはconstがあります.constを思い浮かべれば,型修飾子がどのようなものかを想像できると思います.さて,volatileの説明をKernighan&Ritchieの『プログラミング言語 C』から引用すると, 「volatileの目的は,黙っていると処理系で行われる最適化を抑止することにある.例えば,メモリ・マップ方式の入出力をもつマシンでは,ステータス・レジスタに対するポインタは,ポインタによる見かけ上,冗長な参照をコンパイラが

    ucq
    ucq 2009/12/27
  • [法大奥山研究室]C言語:17.2. volatile

    17.2. volatile volatile修飾型は,次の文法を持ちます。 非volatile修飾型の左辺値によって volatile修飾型のオブジェクトを参照する場合,未定義の動作となる。[C99, 6.7.3, 5] volatile修飾型は,処理系に不明な形で値が変更される可能性を持ち,それへのアクセスは処理系依存となる。[C99, 6.7.3, 6] プログラムの実行とは無関係に値が変化するデータという意味なのですが,仕様書(C99)だけでは良く分からないので,冗長にならない程度に説明を付します。 volatile は該当の変数に処理の最適化をしないようにコンパイラに知らせるためのものです。コンパイラは処理の最適化を試み,一部の変数を CPU のレジスタに割り当てたり,文を削除することがあります。次の例では,register を付していないにもかかわらず,変数 i が CPU

    ucq
    ucq 2009/12/27
  • 1