5.72 C99 の _Pragma 処理命令

C90 では、マクロ拡張の結果として #pragma ディレクティブを生成することはできません。ただし、C99 _Pragma 演算子により、プラグマディレクティブにプリプロセッサマクロを組み込むことができます。

_Pragma が C90 で許可されるのは、--strict が指定されていない場合です。
例えば、
# define RWDATA(X) PRAGMA(arm section rwdata=#X)
# define PRAGMA(X) _Pragma(#X)
RWDATA(foo)  // #pragma arm section rwdata="foo" と同じ
int y = 1;   // y はセクション "foo" に配置する
関連する概念
5.59 C99 の新しい言語機能
5.61 C99 および C90 の // コメント
5.62 C99 の複合リテラル
5.63 C99 の指定済みのイニシャライザ
5.64 C99 の 16 進浮動小数点数
5.65 C99 のフレキシブル配列メンバ
5.66 C99 の __func__ 定義済み識別子
5.67 C99 の inline 関数
5.68 C99 および C90 の long long データ型
5.69 C99 の使用する引数の数が一定でないマクロ
5.70 C99 の宣言とステートメントの混合
5.71 C99 の選択および反復ステートメントの新しいブロック有効範囲
5.73 C99 の制限付きポインタ
5.75 C99 の複素数
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.