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