Skip to main content

IAR Embedded Workbench for Arm 9.70.x

プラグマディレクティブの一覧

このセクションの内容:

#pragmaディレクティブは、C規格によって定義されたものであり、ベンダ固有の拡張の使用方法を規定することにより、ソースコードの移植性を維持するための仕組みです。

プラグマディレクティブは、コンパイラの動作(変数や関数用のメモリの割当て方法、拡張キーワードの許可/禁止、ワーニングメッセージの表示/非表示など)を制御します。

プラグマディレクティブは、コンパイラでは常に有効になっています。

以下の表には、#pragmaプリプロセッサディレクティブまたは_Pragma()プリプロセッサ演算子で使用可能なコンパイラのプラグマディレクティブの一覧を示します。

プラグマディレクティブ

説明

bitfields

ビットフィールドメンバの順序を設定します。

calls

間接的なコールに対するコールされうる関数の一覧を指定します

call_graph_root

関数がコールグラフルートであるように指定します。

cstat_disable

C-STAT® 静的解析ガイドを参照してください。

cstat_enable

C-STAT® 静的解析ガイドを参照してください。

cstat_restore

C-STAT® 静的解析ガイドを参照してください。

cstat_suppress

C-STAT® 静的解析ガイドを参照してください。

data_alignment

変数のアライメントを高く(より厳密に)します。

default_function_attributes

関数の宣言および定義に対するデフォルトの型とオブジェクトを設定します。

default_no_bounds

#pragma no_boundsを関数全体のセットに適用します。#pragma default_no_boundsを参照してください。

default_variable_attributes

変数の宣言および定義に対するデフォルトの型とオブジェクトを設定します。

define_with_bounds

ポインタ変数の境界をトラッキングする関数を組み込みます。#pragma define_with_boundsを参照してください。

define_without_bounds

C-RUN用の境界情報を持たない関数のバージョンを定義します。#pragma define_without_bounds』でC-RUNのドキュメントを参照してください。

deprecated

非推奨としてエンティティをマークします。

diag_default

診断メッセージの重要度を変更します。

diag_error

診断メッセージの重要度を変更します。

diag_remark

診断メッセージの重要度を変更します。

diag_suppress

診断メッセージを無効にします。

diag_warning

診断メッセージの重要度を変更します。

disable_check

直後の関数が境界へのアクセスをチェックしないように指定します。#pragma disable_checkを参照してください。

error

解析の際にエラーについて警告

function_category

スタック使用量解析のために関数カテゴリを宣言します。

generate_entry_without_bounds

直後の関数について、C-RUN用の境界を持たない追加のエントリの生成を有効化します。#pragma generate_entry_without_boundsを参照してください。

include_alias

インクルードファイルのエイリアスを指定します。

inline

関数のインライン化を制御

language

IARの言語拡張を制御します。

location

変数の絶対アドレスを指定し、レジスタに変数を配置するか、または指定のセクションに関数のグループを配置します。

message

メッセージを出力します。

no_arith_checks

直後の関数ではC-RUN の算術演算チェックを実行しないことを指定します。#pragma no_arith_checksを参照してください。

no_bounds

直後の関数がC-RUN用の境界チェックを組み込まれないように指定します。#pragma no_boundsを参照してください。

no_stack_protect

直後の関数のスタック保護を無効にします。

object_attribute

変数または関数の宣言もしくは定義にオブジェクト属性を追加します。

once

ヘッダファイルが1回以上処理されることを回避します。

optimize

最適化の種類およびレベルを指定します。

pack

構造体および共用体メンバのアライメントを指定します。

__printf_args

printfスタイルフォーマット文字列の関数の呼び出しに使用されている引数が正しいかどうかを検証します。

public_equ

パブリックアセンブラのラベルを定義し、それに値を割り当てます。

required

別のシンボルによって必要とされるシンボルが確実にリンク出力に含まれるようにします。

rtmodel

ランタイムモデル属性をモジュールに追加します。

__scanf_args

scanfスタイルフォーマット文字列の関数の呼び出しに使用されている引数が正しいかどうかを検証します。

section

組み込み関数で使用されるセクション名を宣言します。のエイリアスです。

segment

このディレクティブは#pragma sectionのエイリアスです。

section_prefix

プリフィックスをセクション名に追加します。

stack_protect

直後の関数のスタック保護を強制します。

STDC CX_LIMITED_RANGE

コンパイラで通常の複雑な数式を使用できるかどうかを指定します。

STDC FENV_ACCESS

ソースコードが浮動小数点環境にアクセス可能かどうかを指定します。

STDC FP_CONTRACT

コンパイラが浮動小数点式を縮約できるかどうかを指定します。

svc_number

ソフトウェア割り込み(32 ビットモード)あるいは例外(64 ビットモード)の割り込み数を設定します。

type_attribute

宣言または定義に型属性を追加します。

unroll

ループを展開します。

vectorize

ループ用にNEONベクタ命令の生成を有効または無効にします。

weak

定義を弱くするか、関数または変数に弱いエイリアスを作成します。

表102 プラグマディレクティブの一覧 


注記

移植性については、認識されているプラグマディレクティブ (6.10.6)も参照してください。