プリプロセッサ マクロは、コンパイルされたオブジェクト ファイルには表示されません。コンパイラにはまったく表示されません。もしあなたがそれを持ってい#define
てどこにも使ったことがないなら、その痕跡はありません.
どこかのコードで使用した場合、命令の定数として表示される可能性があります (たとえば、定数をレジスタまたはメモリにロードするため)。これを使用して静的データを初期化すると、データ セグメントに定数として表示されます。
// Global variable definition
#define BOOTSIGNATURE 0xAA55
uint16_t my_global = BOOTSIGNATURE;
上記をコンパイルしてデータ セグメントを見ると、次のようになります。
$ gcc -c test.c
$ objdump -s test.o
[...]
Contents of section .data:
0000 55aa0000 U...
ご覧のとおり、2 バイトはリトル エンディアン順でメモリに格納されます55 AA
(先頭0000
は 16 進数のセグメント オフセットです)。
データのエンディアンを制御する場合は、明示的なバイト配列として格納します。
uint8_t my_global[] = {0xAA, 0x55};
これにより、バイトは常に指定された順序で格納されます。