Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » c scripte mit seltsamen präprozessoranweisungen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
13.05.2005, 08:28 Uhr
~cppatw
Gast


hallo mal wieder

habe eine kleine frage bezüglich mehrerer c scripte innerhalb eines PCS-Systems.

und zwar sind da mehrere c quellcode dateien, die zu einem programm gehören, und nun wird in jedem der einzelnen jeweils

#include <blabla.h>
#define blabla

aber mit dutzenden defines, was ja auch ok ist. nur wird das in jedem einzelnen script gemacht, was meiner meinung aber unnötig ist (ich kann kein c, lerne c++ und bin versiert in visualbasic), plus das es doch zu einer unglaublichen aufblähung der einzelnen dateien führt, oder? das merkt man dann auch, da diese scripte übers netzwerk abgearbeitet werden und sehr langsam sind.

also nochmal kurz:

in allen einzelnen scripten eines programmes steht der riesige kopf mit den #-anweisungen und wird meiner ansicht nach dann auch da reinkompiliert, was aber nicht nötig ist, plus das es die scripte riesig aufbläht. sieht also quasi so aus, als hätte jemand die hunderte zeilen mit includes und defines copy&paste mäßig sinnlos überall reinkopiert.

sehe ich das richtig oder gibt es da einen möglichen grund?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.05.2005, 08:37 Uhr
Pablo
Supertux
(Operator)


die #includes sind wichtig, und #define sind auch wichtig, allerdings hängt die Wichtigkeit der #define von der Benutzung dieser Makros/Konstanten ab. Ohne Code kann man nicht sagen, ob sie überflüssig sind oder nicht.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.05.2005, 08:45 Uhr
~cppatw
Gast


ja klar sind die wichtig, aber muss ich die in jeder einzelnen quellcode datei reinkopieren?
reicht das nicht wenn das in derjenigen drin ist, in der die main-funktion enhalten ist?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.05.2005, 10:41 Uhr
virtual
Sexiest Bit alive
(Operator)


Hängt von der Projektstruktur ab.
Generell gibt: never touch a running system.
Wenn Du noch nicht so dolle oin C bewandert bist, ist das nicht unbedingt eine empfehlenswerte Sache, Header und Macros zu entfernen.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
13.05.2005, 10:47 Uhr
~cppatw
Gast


genaugenommen bin ich nur visualbasic und brauchbar in c++ bewandert. c habe ich in dem sinne noch nie benutzt und hab nur ein paar grundlagen dazu.

die scripte funktionieren zwar, das problem ist aber das dies für eine webanwendung ist (genau genommen prozeßüberwachung von WinCC über webbrowser). die jetztigen funktionen sind ja eh nur dummy-funktionen für den test, sind aber in tatsache nur ca. 2 bis 3% so groß wie die die bei einem echten projekt auftreten. und das läuft so schon auf einem p4 2,8 ghz mit 1 gb RAM extrem langsam (bis zu 20 sekunden verzögerung sind normal, manchmal noch mehr, und zwar so heftig das sogar die uhr (!) ruckelt), sprich
es ist zeitkritisch.

und wenn die makros und header unnötig sind (was meiner meinung nach so ist, aber bin ja kein c-mensch), würden die ja die scripte so heftig aufblähen, das in einem echten projekt gigabyte-weise scripte zu verarbeiten sind. dann ist das nicht mehr zeitkritisch weil dann eh alles steht
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
13.05.2005, 13:42 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


dann hau halt mal den code her ansonsten scheint ein iis zu sein, der ist immer langsam
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
17.05.2005, 09:51 Uhr
~cppatw
Gast


huhu

also echte codeschnippsel darf ich nicht rausgeben, geheimhaltung von quellcode etc..

aber ich mach mal ein dummy-script rein:


C++:
#include meinelib.h
#define meinkleinesmakro1
#define meinkleinesmakro2
#define meinkleinesmakro3
#define meinkleinesmakro4
...
#define meinkleinesmakro150
...
#define meinkleinesmakro866



darunter kommen dann haufenweise funktionen
die nächste scriptdatei sieht dann genauso aus,
hat genau die gleichen includes und defines, selbst wenn die nicht
genutzt werden.

daher mein eindruck, die entwicklungsabteilung (ich bin tester ) habe
aus faulheit einfach alle präprozi anweisungen kopiert und eingefügt.

daraus wiederum ziehe ich schlüsse, dass dies doch einen riesigen overhead an ein-
kompilierten daten ergibt, da ja hunderte makros definiert werden die dann unter umständen nicht genutzt werden.

Dieser Post wurde am 17.05.2005 um 13:48 Uhr von Pablo editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
17.05.2005, 10:09 Uhr
Oliver
S2-Pixelgeneral


Unbenutzte Makros werden nicht "reinkompiliert". Du kannst mehrere tausend schreiben, das würde nichts an der Größe ändern, das intressiert nur den Präprozessor, aber nicht den Compiler.
--
Demokratie ist die Diktatur der Mehrheit.

www.siedler25.org/ ( Siedler2 - Remake )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
17.05.2005, 10:09 Uhr
virtual
Sexiest Bit alive
(Operator)


Hallo,

also erstmal, was mir ein wenig Bauchschmerzen macht: Es gibt kein C++ Script. Es gibt höchstens C++ Source und wenn Du mit der Entwicklungsabteilung redest, solltest Du den Begriff "C++ Script" ganz schnell vergessen.

Dann zum eigentlichen Problem

C++:
#include meinelib.h
#define meinkleinesmakro1
#define meinkleinesmakro2
#define meinkleinesmakro3
#define meinkleinesmakro4
...
#define meinkleinesmakro150
...
#define meinkleinesmakro866



Wenn diese absolut identisch in allen Dateien drinsteht, ist das Qualitättechnisch gesprochen ziemlich katastrophal, weil man es hier mit einer Menge Coderedundanzen zu tun hat, Die Lösung betünde tatsächlich darin, einen eigenen header zu Bauen, der obige Macros enthält und dann den Header in die Sourcen einzubinden.
Wie man das macht, werden die Herren der Entwicklungsabteilung schon wissen. Wenn jedoch auch die Entwicklungsabteilung nicht weiß, was Header sind, dann ist jede Qualitätssicherung eigentlich für die Katz.

Du solltest also eine Datei haben mit folgenden Inhalt:

C++:
#ifndef MY_HEADER_H_INCLUDED
#define MY_HEADER_H_INCLUDED
...
#include meinelib.h
#define meinkleinesmakro1
#define meinkleinesmakro2
#define meinkleinesmakro3
#define meinkleinesmakro4
...
#define meinkleinesmakro150
...
#define meinkleinesmakro866
...
#endif


Diese Datei ist nun dort mittels "include" einzubinden, wo bisher ihr Inhalt stand.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
17.05.2005, 13:48 Uhr
Pablo
Supertux
(Operator)


Müsste auch nicht mindestens #include "meinelib.h" sein?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: