2

以下の標準 (または準標準で広く展開されている) C マクロはありますか?

  1. 00:11:22:33:44:55 としてフォーマットされた MAC アドレスの長さ、つまり 17 バイト。
  2. 生の MAC の長さ、つまり 6 バイト。

これらが独自のヘッダー ファイルで定義されているのを何度か見てきましたが、それ以外の場合は「適切な」マクロを使用し、これらのマクロが何もない多くのサンプル/チュートリアル コードを目にします。「6」は常にハードコードされています。

FWIW私はLinuxを使用しています。

明らかに、自分で定義するのは簡単ですが、可能な場合は標準を使用したいと思います。

4

1 に答える 1

3

一部のプラットフォームでは、次のような「/usr/include/net/ethernet.h」を定義しています。

#define ETHER_ADDR_LEN 6

また、一部のプラットフォームには同様の定義がありますif_ether.h(netinet を含むさまざまな場所にあります)。

ただし、「文字列形式の」アドレスの長さを定義するものは何も知らず、これらの s を課す標準も知らない#defineため、普遍的に移植可能ではない可能性があります。

于 2012-04-05T18:29:33.937 に答える