Re: Jak správně rozdělit C++ projekt

Pavel Hudeček edizon na seznam.cz
Pondělí Srpen 23 16:16:09 CEST 2021


Ano, třeba v CodeVisionAVR  to takhle používám, mám nějaký hlavní nazev_
projektu.c a do něj jsou includlé typicky deklarace.c, init.c a cekani.c a 
jejich překladač pak pustí jen překlad toho hlavního C, protože tak to má v 
default nastavení:-)



V normálním c, kde se všechny .c překládají, je to tak, že se includují jen 
.h a v nich je vše deklarováno jako extern a linker si to pak sám spojí s 
tím co dostal překladem nezávislým všech .c




takže mám např. deklarace.c a v něm:

int blaba = 123;

(to se nikam neincluduje)




dále init.c a v něm:

void init(){

.......

}

(to se nikam neincluduje)





A pak deklarace.h a v něm:

extern int blabla;

extern void init();

(to se includuje)




PH


---------- Původní e-mail ----------
Od: Jan Waclawek <konfera na efton.sk>
"Neviem ako v C++, ale v C je #include doslovne len vlozenie jedneho suboru
do druheho.

Takze ak subor xxx.c jednoducho doslovne rozdelim na subory xxx1.x, xxx2.x,
xxx3.x, a vytvorim subor novyxxx.c v ktorom bude 
#include xxx1.x
#include xxx2.x
#include xxx3.x

tak novyxxx.c sa bude preklada uplne rovnako ako povodny xxx.c

Pripony som zmenil kvoli tomu, lebo ked sa pouziju rozne automaticke
nastroje typu IDE, a tie uvidia subory s priponami .c alebo .h tak sa ich
budu snazit samostatne prekladat.

Ale tradicionalisti budu prskat.

wek



----- Original Message ---------------

Subject: Jak správně rozdělit C++ projekt
From: Petr Zapadlo <zapik na email.cz>
Date: Mon, 23 Aug 2021 15:47:31 +0200
To: HW-news <hw-list na list.hw.cz>

>Zdravím,
>
>nějak se nemůžu domluvit s rozdělením původního jedno velkého souboru na 
>menší. Mějme jeden soubor main.cpp který má následující strukturu:
>
>
>část #include
>
>část #define (piny a podobně)
>
>část deklarace funkcí
>
>část vytvoření  instancí tříd
>
>část definice globálních proměnných
>
>funkce setup
>
>funkce loop
>
>definice funkcí.
>
>A pro zlepšení orientace a čitelnosti bych rozdělit nějak takto po 
>souborech:
>
>globální proměnné, instance tříd a #define
>
>setup a loop
>
>definice funkci
>
>Jaký to má správný postup, buď mu někde něco chybí a nebo si naopak 
>stěžuje, že je daná proměnná redefinována
>
"
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20210823/b1b367d2/attachment.html>


Další informace o konferenci Hw-list