私は持っていますuint8_t orig[ETH_ALEN];
どうすれば印刷できますか__printf(3, 4)
これは次のように定義されます#define __printf(a, b) __attribute__((format(printf, a, b)))
Origはイーサネットハードウェアアドレスである必要があります。
C99フォーマット指定子を使用します。
#include <inttypes.h>
printf("%" PRIu8 "\n", orig[0]);
適切なフォーマット文字列を作成する必要があります。このprintf()関数には配列を一度に出力する方法がないため、配列を分割してそれぞれを出力する必要がありますuint8_t。
__printf("MAC: %02x:%02x:%02x:%02x:%02x:%02x\n",
orig[0] & 0xff, orig[1] & 0xff, orig[2] & 0xff,
orig[3] & 0xff, orig[4] & 0xff, orig[5] & 0xff);
これ& 0xffは、onlu8ビットが確実に送信されるようにするためのものprintf()です。ただし、符号なしタイプの場合は必要ないので、なしuint8_tでも試すことができます。
これは、通常の48ビットMACを想定しており、従来のコロンで区切られた16進スタイルを使用して印刷します。