我正在编写一个在tcphdr
中使用struct netinet/tcp.h
的简单程序,如下所示:
#define _BSD_SOURCE
#include <netinet/tcp.h>
#include <stdio.h>
int main()
{
struct tcphdr t;
t.th_sport = 0;
printf("\n%d", t.th_sport);
return 1;
}
因为我希望这个程序可以在FreeBSD和Centos上运行,所以我使用的是基于FreeBSD的属性。我还在文件的开头定义了_BSD_SOURCE
。但是当我将此源代码保存到std=c++11
文件中时,无法使用*.cpp
进行编译。没有名为th_sport
的成员。但是,它由std=c99
与*.c
文件完美编译。
这有什么问题?有人帮我解释一下吗?非常感谢。