我已将所有结构放在名为structure.h
的头文件中:
struct mac_filter {
u_char ether_dhost[ETHER_ADDR_LEN];
u_char ether_shost[ETHER_ADDR_LEN];
u_short ether_type;
}__attribute__ ((packed));
当我编译structure.h时,我收到以下错误:
error: expected specifier-qualifier-list before ‘u_char’
u_char ether_dhost[ETHER_ADDR_LEN];(line at which there is an error )
error: expected specifier-qualifier-list before ‘u_int16_t’
u_int16_t uh_sport;(line at which there is an error )
如何解决这些错误?
答案 0 :(得分:1)
如果它在之前开始移动,那么很可能是因为u_char
和u_int16_t
未定义。
暂时将类型更改为int
并查看问题是否消失(尽管您可能会看到其他问题)。
如果是这样,请更改它们并确保在尝试使用它们之前定义类型。例如,检查标题是否按正确顺序包含以执行此操作。如果您要发布代码,那么告诉您完全如何解决它会更容易。
我犹豫不决,因为它听起来居高临下。你 实际上是在尝试自己编译头文件,不是吗?我只是因为你的“我编译那个structure.h”的评论。如果你是,你不应该。您应该编译#include
头文件的C文件。
如果我冒犯了道歉,那不是我的意图。只是我看到了一些人试图做的奇妙事情,这对他们来说很有意义: - )