私は、Linuxのヘッダーの1つ、<linux/rtnetlink.h>
を読みながら私には奇妙な何かに出くわしました:私はここに、マクロの理由を理解するのに苦労を抱えているか、彼らはなるだろうどのような違いなぜ#列挙型の中に値を定義しますか?
/* RTnetlink multicast groups */
enum rtnetlink_groups {
RTNLGRP_NONE,
#define RTNLGRP_NONE RTNLGRP_NONE
RTNLGRP_LINK,
#define RTNLGRP_LINK RTNLGRP_LINK
RTNLGRP_NOTIFY,
#define RTNLGRP_NOTIFY RTNLGRP_NOTIFY
RTNLGRP_NEIGH,
#define RTNLGRP_NEIGH RTNLGRP_NEIGH
RTNLGRP_TC,
#define RTNLGRP_TC RTNLGRP_TC
RTNLGRP_IPV4_IFADDR,
#define RTNLGRP_IPV4_IFADDR RTNLGRP_IPV4_IFADDR
/* ... etc, pattern continues ... */
};
。これは何の目的ですか?
クラス内にありますか? – imreal
誰かが 'enum'を定義に変換したい、またはその逆で、未使用の行を削除するのを忘れたようです。しかし、いいえ、私はそれがLinuxカーネルにあるとは思わないでしょう... –
@JohnKugelman:それが私が考えることができる唯一の理由です。回答として投稿する必要があります。 (私がする前に) –