10.71 __attribute__((used)) 変数属性

この変数属性を使用すると、そのスタティック変数は参照されていなくても、オブジェクトファイル内に保持されることをコンパイラに通知できます。

使用法

使用済みとマークされたスタティック変数は、宣言された順番で単一セクションに生成されます。__attribute__((section("name"))) を使用して、 __attribute__((section("name")))
__attribute__((used)) でマークされたデータには、オブジェクトファイル内で、リンカによる未使用のセクションの削除処理を抑制するためのタグが付けられます。

この変数属性は、ARM コンパイラでサポートされている GNU コンパイラの拡張機能です。

__attribute__((used)) を使用して、スタティック関数を使用済みとマークすることもできます。
__attribute__((used)) を使用して、オブジェクト内にテーブルをビルドできます。

static int lose_this = 1;
static int keep_this __attribute__((used)) = 2;     // retained in object file
static int keep_this_too __attribute__((used)) = 3; // retained in object file
関連する参考文書
10.52 __attribute__((used)) 関数属性
10.49 __attribute__((section("name"))) 関数属性
関連情報
未使用セクションの削除
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.