Я пытаюсь использовать типы структур tcphdr
и udphdr
, которые определены в заголовочном файле netinet.h
.
Хотя при использовании #include<netinet/tcphdr.h>
VSCode по-прежнему показывает сообщение:
pointer to incomplete class type is not allowed
во всех местах, где я хочу получить доступ к значениям данной tcphdr
или udphdr
структуры.
Поскольку компиляция работает нормально, я думаю, что я что-то упустил в VSCode.
Это мои текущие настройки проекта.
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/usr/include/python3.5m",
"/usr/include/netinet"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "clang-x64"
}
],
"version": 4,
}
Минимальный пример:
#include <stdlib.h>
#include <stdio.h>
#include <netinet/in.h>
#include <netinet/ip.h>
#include <netinet/tcp.h>
int main(int argc, char** argv) {
struct tcphdr *test = malloc(sizeof(struct tcphdr));
printf("%d\n", ntohs(test->dest));
free(test);
return 0;
}