C ++ дает советы по разделению исходного кода на несколько заголовков и cpp - PullRequest
0 голосов
/ 12 марта 2020

, поскольку я хочу теперь создавать большие проекты на C ++, я подумал о том, чтобы разделить мой код на файлы заголовка / cpp. Но у меня возникают проблемы с компиляцией, потому что я неправильно использую несколько #include.

main. cpp

#include"device.h"
#include"checksum.h"
int main()

device.h

#pragma once
#include "structures.h"

void getDevice(); /* pcpa_if_t* dev */
void openDevice();/* pcap_t* handle */
void applyFilter(const char* filter_exp); /* compiles and applies */

. cpp

#include "device.h"

pcap_if_t* alldevs;
pcap_if_t* dev;
pcap_t* handle;
struct bpf_program fp;
bpf_u_int32 mask;
bpf_u_int32 net;
char filter_exp[] = "ip";
char errbuf[PCAP_ERRBUF_SIZE];

void getDevice() { ...

структура.h

#pragma once
#include<iostream>
#include<pcap.h>
#include <inttypes.h>
#define SNAP_LEN 1518 ...

контрольная сумма. cpp

#include "checksum.h"

контрольная сумма.h

 #pragma once
    #include "structures.h"

Этот код не компилируется, проблема в checkum.h cpp, я не знаю почему. Должен ли я свободно использовать библиотечные включения при необходимости или мне нужно изменить структуру cern для большей эффективности? Включает ли go в заголовок или cpp файл, имеет ли это значение? Является ли хорошей практикой использовать прагму один раз для всех заголовков? На простых примерах я в порядке, но у меня возникают очень быстрые проблемы при работе с большим количеством заголовков и cpp файлов.

Ошибка компилятора: функции уже определены.

...