"Tipps" für optimales C???



  • JoeF schrieb:

    Schön das es auch hier immer Neu-mal-kluge Leute gibt.

    Das nimmst du sofort zurück 😉

    JoeF schrieb:

    Ich habe ja nicht behauptet, dass es so gut ist.

    Dann sind wir ja einer Meinung.

    JoeF schrieb:

    Also nochmal: Wenn Autoren ein Buch schreiben, schreiben sie es oftmals für die breite Masse (also auch für Anfänger)

    Hmmm. In Büchern für "die breite Masse" steht auch manchmal der grösste Scheiss. Da findet man dann Bücher wo z.B. "void main" drinsteht oder (bei C++) #include<iostream.h> oder es wird ohne "std::" und ohne "using namespace std;" direkt string verwendet.

    Es gibt natürlich auch andere, bessere Bücher die diese Fehler nicht enthalten wo der Autor aber trotzdem z.B. malloc() grundlos castet. Ganz einfach daher, weil er es selber nicht besser wusste.

    JoeF schrieb:

    und da C und C++ eng miteinander verwandt sind

    Sie entstammen der gleichen Quelle und teilen Syntax und Semantik. Aber das trifft auch auf die Verwandschaftsbeziehung zwischen C und Objective-C, Pike oder Cilk zu.

    Man kann zwar noch C Quellcode mit einem C++ Compiler kompilieren, aber damit hat es sich auch schon.

    JoeF schrieb:

    wollen sie (denke ich zumindestens) speziell den Anfänger nicht durcheinander bringen.

    Gerade Anfänger sollte man darauf hinweisen, dass ein malloc()-cast nicht notwendig ist. Und die wenigen Spezialfälle, wo man malloc() doch mal casten muss, sind für Anfänger erst einmal uninteressant.

    JoeF schrieb:

    Und du wirst mir wohl recht geben, dass die meisten nicht einen reinen C- Compiler benutzen (ich weiß du ja).

    Stimmt. Wenn ich gcc benutze (nicht verwechseln mit g++), verwende ich einen reinen C Compiler.

    Und um C++ Quellcode ging es ja nicht. Desweiteren verwendet man in C++ Programmen nicht malloc()/free() sondern new/delete und muss deswegen auch nicht casten 🙂 Und wenn doch, dann verwendet man dynamic_cast<T>(var), static_cast<T>(var) oder reinterpret_cast<T>(var).

    JoeF schrieb:

    Um nun also Fehler vorzubeugen, mußt man malloc casten.

    ...nur, wenn man innerhalb C++ ist. Dann musst du malloc() casten. Aber wir sind hier im ANSI C Forum, weswegen ich ausschliesse dass der Fragesteller C++ verwendet.

    JoeF schrieb:

    Nohmal es sollte ja gar kein Aufruf werden, ab sofort nur noch C++ Compiler zu benutzen, um ein C-Quellcode zu kompilieren, sondern nur der Versuch einer Erklärung warum so oft die Diskussion aufkommt wegen dem malloc() und casten oder nicht.

    ...also nicht casten, ausser man programmiert innerhalb eines C++ Programmes mit C.


Anmelden zum Antworten