Oracle® Solaris Studio 12.4: C ユーザーガイド

印刷ビューの終了

更新: 2014 年 12 月
 
 

5.2 微調整におけるプラグマの使用

より詳細なほうが型に基づいた解析に有利な場合は、このセクションで説明するプラグマを使用すると、適用されている別名レベルを無効にし、個々の型またはポインタ変数間の別名関係を変換単位で指定できます。これらのプラグマは、いくつかの特定のポインタ変数がいずれかの使用可能なレベルで許可されていない不規則な方法で使用されていても、変換単位でのポインタの使用がいずれかの使用可能な別名レベルと一貫していているときに、最大の利益を提供します。


注 - プラグマより先に命名済みの型または変数を宣言しない場合、警告メッセージが発行され、プラグマが無視されます。プラグマの意味の適用される最初のメモリー参照のあとにプラグマを配置した場合、プログラムは未定義の結果を生成します。

プラグマの定義では、次の表に示す用語を使用します。

用語
意味
level
-xalias_level[=l] に一覧表示されている任意の別名レベル。
type
次のいずれかです。
  • charshortintlonglong longfloatdoublelong double

  • void。すべてのポインタの型を示します。

  • typedef nametypedef 宣言で定義される型の名前。

  • struct namestruct tag 名が後続するキーワード struct のことです。

  • unionunion tag 名が後続するキーワード union のことです。

pointer_name
翻訳単位におけるポインタ型の変数の名前