laubi Geschrieben 28. Januar 2010 Teilen Geschrieben 28. Januar 2010 hallo erstmal! ich habe eine frage und zwar: kann ich mit einer ganz einfachen funktion eine quelldatei in eine andere einfügen? programmiersprache c ich habe eine quellcode und einen zweiten, will den einen in den anderen einfügen ohne ihn zu kopieren und irgendetwas komplieziert zu machen. falls es wichtig ist ich benutze dev-c++ als compiler lg laubi Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 28. Januar 2010 Teilen Geschrieben 28. Januar 2010 kann ich mit einer ganz einfachen funktion eine quelldatei in eine andere einfügen? programmiersprache cJa, das geht. Es gibt dafür aber eigentlich keinen guten Grund. Was willst du denn damit erreichen? falls es wichtig ist ich benutze dev-c++ als compilerDas ist insofern wichtig, als ich dir dazu rate, von dieser Entwicklungsumgebung die Finger zu lassen. Sie ist ziemlich fehlerbehaftet und wird seit einigen Jahren nicht mehr weiterentwickelt. Nimm Code::Blocks oder Microsoft Visual C++ Express Edition. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
laubi Geschrieben 28. Januar 2010 Autor Teilen Geschrieben 28. Januar 2010 1. ich schreibe in moment ein programm das länger ist und verliere regelmäsig den überblick, weil ich immer soweit hin und herscrollen muss, bis ich es finde. so würde es mir helfen das programm in teile zu teilen, wodurch ich besser programmieren kann. so habe ich immer einen programm in 5-10 teilen geschrieben und dann zusammenkopiert, aber mich zum schluss nicht mehr ausgekannt. 2. leider MUSS ich dev-c++ benutzen, weil ich noch zur schule gehe und derzeit nur das benutzen darf. (mein lehrer ist eigenartig) lg laubi Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 28. Januar 2010 Teilen Geschrieben 28. Januar 2010 1. ich schreibe in moment ein programm das länger ist und verliere regelmäsig den überblick, weil ich immer soweit hin und herscrollen muss, bis ich es finde. Dafür gibt es die Auftrennung in Header und Cpp (C++) bzw C Dateien. 2. leider MUSS ich dev-c++ benutzen, weil ich noch zur schule gehe und derzeit nur das benutzen darf. (mein lehrer ist eigenartig) Das ist ein Trugschluss. Wie Klotzkopp schon sagt, Dev-Cpp ist fehlerhaft und wird seit Jahren nicht mehr weiter entwickelt (siehe Dev-C++ ? Wikipedia). Es spielt keine Rolle mit welchem Programm Du Deine C Codes schreibst, Notepad tut es auch. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 28. Januar 2010 Teilen Geschrieben 28. Januar 2010 so würde es mir helfen das programm in teile zu teilen, wodurch ich besser programmieren kann.Der übliche Weg, Code auf mehrere Dateien zu verteilen, sind Headerdateien. Du kannst zu jeder deiner Quellcodedateien eine .h-Datei erstellen, die nur die Deklarationen beinhaltet. Diese Headerdatei kannst du dann in anderen Quellcodedateien, in denen du diese Funktionen brauchst, mittels Includedirektive einbinden: #include "deineheaderdatei.h" Bitte komm nicht auf die Idee, deine Quellcodedateien mit Includedirektiven zusammenzusetzen. Auf lange Sicht bereitest du dir damit nur Ärger. Beispiel: // foo.cpp void foo() { // Hier passiert etwas } [/code] [code]// bar.cpp int main() { // hier wird jetzt foo gebraucht } Du erstellst dann eine foo.h: // foo.h #ifndef FOO_H_INCLUDED #define FOO_H_INCLUDED // Hier die Deklaration der Funktion foo void foo(); #endif [/code] Das #ifndef/#define/#endif-Konstrukt sind die sogenannten Include-Guards. Merk dir einfach, dass eine Headerdatei so etwas haben sollte. Der Name des Symbols (FOO_H_INCLUDED) muss nicht so aussehen, aber er muss sich von dem aller anderen Headerdateien unterscheiden. Traditionell benutzt man Großbuchstaben. Wenn deine Headerdatei fertig ist, kannst du bar.cpp so ändern: [code]// bar.cpp # include "foo.h" int main() { // hier kann jetzt foo benutzt werden foo(); } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
laubi Geschrieben 28. Januar 2010 Autor Teilen Geschrieben 28. Januar 2010 okok, ich weiß selbst das dev-c++ doof thx Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 1. Februar 2010 Teilen Geschrieben 1. Februar 2010 Das #ifndef/#define/#endif-Konstrukt sind die sogenannten Include-Guards. Merk dir einfach, dass eine Headerdatei so etwas haben sollte. Der Name des Symbols (FOO_H_INCLUDED) muss nicht so aussehen, aber er muss sich von dem aller anderen Headerdateien unterscheiden. Traditionell benutzt man Großbuchstaben. Anmerkung: Eine Alternative zu den Include-Guards ist #pragma once. (Alter, schreibfauler Programmierer tippt nicht gern so viel. :floet:) Ist zwar kein Standard, sollte aber von gängigen Compilern unterstützt werden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
laubi Geschrieben 18. Februar 2010 Autor Teilen Geschrieben 18. Februar 2010 Hallo! ich habe nun versucht eine header datei zu erstellen, aber es funktioniert nicht so ganz wie es sollte >>8`enter' undeclared << was der fehler bedeutet weiß ich, aber ich habe es deklariert! Meine dateien mit denen ich es einfach mal versuchen wollte: versuch.cpp: #include "laubis" #include<stdio.h> #include<stdlib.h> int main() { enter(4); system("Pause>2"); } Meine header datei "laubis.h" // laubis.h #ifndef LAUBIS_H_INCLUDED #define LAUBIS_H_INCLUDED void enter(int); #endif meine datei "laubi.cpp" #include<stdio.h> #include<stdlib.h> //long enter();// anzahl der enter void enter(int a)//wie viele enter erzeugt werden { int b=0; do { printf("\n"); b++; }while(b!=a); } alle datein sind in einen ordner und müssten doch irgendwie funktionieren... WAS HABE ICH FALSCH?? bitte den code zur lösung angeben lg laubi Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 18. Februar 2010 Teilen Geschrieben 18. Februar 2010 #include "laubis[COLOR="Red"].h[/COLOR]" Der Compiler sollte sich eigentlich auch darüber beklagen, dass er die Datei "laubis" nicht findet. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
laubi Geschrieben 18. Februar 2010 Autor Teilen Geschrieben 18. Februar 2010 er hat immer noch einen fehler:( [Linker error] undefined reference to `enter(int)' Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 18. Februar 2010 Teilen Geschrieben 18. Februar 2010 Du musst beide Quellcodedateien kompilieren und die beiden erzeugten Objektdateien linken. Wenn du eine Entwicklungsumgebung benutzt, musst du beide Quellcodedateien deinem Projekt hinzufügen. Es reicht nicht, die Dateien in denselben Ordner zu stecken. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
laubi Geschrieben 19. Februar 2010 Autor Teilen Geschrieben 19. Februar 2010 das habe ich doch getan, aber dann habe ich das ganze nochmals geschrieben und nun funktioniert es eigenartig.... auf alle fälle danke für die hilfe! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.