Study for Embededd System |
||
構造体や共用体のメンバを、ビット単位で宣言、使用できる
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
- | | | | ! - | | | | ! |
|
実行結果
sizeof=2 x=1 y=5 z=0 c=a
gcc の C言語拡張機能で、変数や関数に属性を付与できる。
__attribute__( (__unused__) ) | 使用されなくてもコンパイラがワーニングを出さない |
__attribute__( (aligned(x)) ) | アライメントをxに調整する |
__attribute__( (section("name")) ) | リンク時にセクション"name"に配置する |
__attribute__( (packed) ) | 構造体や共用体で、メンバの隙間を開けずに詰めて配置する |
使用例
1
2
3
4
5
|
- | | ! |
|
コンパイラによって、定義済の定数が存在する。主にデバッグ目的で使用する。
定数 | 意味 | 型 |
__FUNCTION__ | 関数名 | 文字列 |
__FILE__ | ファイル名 | 文字列 |
__LINE__ | 行数 | 数値 |
__DATE__ | コンパイルした時の日付 | 文字列 |
__TIME__ | コンパイルした時の時刻 | 文字列 |
__STDC__ | ANSI-Cに準拠していると値: 1 | 数値 |
__GLIBC__ | glibcのバージョン | 数値 |
使用例 test.c
1
2
3
4
5
6
7
|
- | | ! |
|
実行結果
main:test.c:5