| 記述 | 意味 |
|---|---|
| 親クラス(インターフェース的)の定義方法 | |
| 派生クラスの定義方法 | |
| exturn | 他のオブジェクトにある変数を参照する。 |
| exturn "C" | C言語形式で関数を定義するという意味で関数の前に前置される。 |
| [キャプチャ](引数リスト){記述} | ラムダ式(無名関数)を定義 |
| template<T> | テンプレートを定義。後続の(struct構造体、operatorのオーバーライド)定義において、Tを何らかの型として使うという意味。 |
| __attribute__((interrupt)) | 直後に定義される関数が、純粋なC++の関数ではなく、割り込みハンドラであることをコンパイラに明示する。 記述することでコンパイラが割り込みハンドラに必要となる前処理と後処理を挿入してくれる。(前処理と後処理はコンテキストの保存と復帰処理) |
| volatile修飾子 | 変数が揮発性であることをコンパイラに明示する。volatileが付いた変数の読み書きは最適化の対象にならない。volatileをつけない場合は、書き込んだ値が他の場所で利用されていないため、この書き込みは無駄だと考えてメモリ書き込み命令を省略する可能性がある。 |
| std::array | C++で固定長配列を作るためのクラス。Cの固定長配列と実態は同じ。 |
| 構造体の各フィールドを詰めて配置するためのコンパイラ拡張。通常コンパイラは何も指定されていない場合には、変数のアラインメントを守るため(shortなら16bit(2byte),intなら32bit(4byte)等)フィールド間にパディングを挿入する。ハードウェアの仕様で定まったデータ構造を構造体、共用体とするにはコンパイラが勝手にパディングを入れないようにこれを後置 | |
| #ifdef __cplusplus #endif | C++特有の機能を囲むことでCでコンパイルした際には無効に、C++でコンパイルしたときには有効にする。「条件コンパイル」 |
| 型名& 変数名; | |
| 型名* 変数名 | |
| 戻り値型 関数名 const{}; | 関数名とブレース{の間にconstがある場合には、この関数ではメンバ変数の値を変化させないということを表す。 |
| 無名名前空間。無名名前空間の内側で定義した識別子はそのファイル外から見えなくなる。 | |
| 用語 | 説明 |
|---|---|
| vtable | virtualキーワードをつけて、仮想関数を定義した際に登録される。これに対してはオーバーライド可能となる。クラス定義で利用される。 |