ubuntuusers.de

Hinweis für die Einsteiger in die C-Programmierung.

Status: Ungelöst | Ubuntu-Version: Ubuntu
Antworten |

idealist_100

Anmeldungsdatum:
17. Dezember 2025

Beiträge: 51

Hallo, auch wenn das schon uralt ist, mal ein Hinweis für die Einsteiger in die C-Programmierung.

Lomodohido schrieb:

Hallo, ich suche ein Programm mit dem ich C programmieren kann. Aber ich möchte eine grafische Oberfläche damit programmieren können weil ich bisher nur von einer über gnu laufende programmierung gehört habe ohne grafische Oberfläche (buttons, usw). Könntet ihr mir ein programm nennen mit dem ich ein C Programm schreiben kann das unter ubuntu läuft und eine grafische bedienung für den anwender hat.

Hier finden sich auch ein paar Kapitel zum Thema "Grafische Oberfläche" https://openbook.rheinwerk-verlag.de/c_von_a_bis_z/028_c_weiterfuehrendes_001.htm#mj3e65f750149ade087925f303b3871af9

Die vielleicht helfen, einen Überblick u bekommen.

Vielleicht auch interessant, weil das Buch an vielen Stellen auf den GNU-gcc-Compiler eingeht.

Wenn ich mit C irgendwelche Probleme habe (mich nicht mehr richtig an die Syntax erinnere) oder Compilerfehler suche. Suche ich gerne mit einer Suchmaschine nach einem Stichwort speziell in diesem Buch mit der Suchoption "site:https:.rheinwerk-verlag.de" die man in die Suchzeile einer beliebigen Suchmaschine eingibt.

Auf der anderen Seite hat man das vollständige Inhaltsverzeichnis über das man navigieren kann. So bekommen Einsteiger evtl. auch ein Gefühl dafür, dass "C" kein Basic-artige Programmiersprache ist, sondern es einen gewissen Aufwand braucht, die Programmiersprache zu lernen. Dafür aber das Fehlerrisiko minimiert wird. (Typisierung ...)

Selbst wenn man sich da durcharbeitet, braucht man nachher noch so einiges an Übung, um wirklich zügig etwas fertig zu bekommen. (vielleicht hilft da heute KI?)

Moderiert von Berlin_1946:

Der Beitrag ist von Hinweis für die Einsteiger in die C-Programmierung. abgetrennt worden. Bitte eine Fragestellung pro Thema.

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4784

Wohnort: Berlin

@idealist_100: Dass bei C das Fehlerrisiko gegenüber Basic-artigen Programmiersprachen minimiert wird, halte ich für eine fragwürdige Aussage. Die meisten Basic-Dialekte erkennen und melden in der Regel sehr viel mehr Fehler zur Laufzeit, wie beispielsweise Über- und Unterläufe bei Rechenoperationen und Arrayzugriffe ausserhalb der Arraygrenzen. Statisch typisiert ist Basic auch, das heisst da melden Compiler Fehler wenn man versucht etwas zu machen, was mit den Datentypen nicht möglich ist.

Bei C hingegen muss man sich um Über- und Unterläufe selber kümmern, wenn das nicht passieren darf. Man kann über Arraygrenzen gehen, oder mittels Zeiger auch absichtlich oder versehentlich sonst wo im Speicher zugreifen. Man muss sich um die Speicherverwaltung selber kümmern, also den Speicher auch selber wieder freigeben damit kein Speicher verloren geht. Anderseits auch aufpassen, dass man nicht irgendwo noch auf bereits freigegebenen Speicher zugreift. Die statische Typisierung lässt sich leicht durch „casten“ umgehen. Was zum Beispiel gerade bei der Frage hier relevant ist, wenn man beispielsweise Gtk verwendet. Da muss man oft manuell zum ”Basistyp” von Objekten casten, um dessen Operationen verwenden zu können, und Nutzerdaten gehen an vielen Stellen als void-Zeiger durch die API. Das sind alles potentielle Fehlerquellen.

encbladexp Team-Icon

Ehemaliger
Avatar von encbladexp

Anmeldungsdatum:
16. Februar 2007

Beiträge: 17688

C (und C++) ist der Grund warum man heute je nach Geschmack von Sachen wie Zig, Rust oder Go spricht.

snafu1

Avatar von snafu1

Anmeldungsdatum:
5. September 2007

Beiträge: 2149

Wohnort: Gelsenkirchen

Das mit der Typsicherheit hängt in C auch davon ab, wie strikt man die Warnungen beim Kompilieren einstellt bzw. welche Optionen man zur Fehleranalyse mitgibt. Einige gefährliche Konstrukte können in dem Moment schon abgefangen werden. Trotzdem ist C nicht gerade für sicheres Programmieren bekannt.

Ich habe da mittlerweile mit Rust bessere Erfahrungen gemacht. Wobei ich die dort eingeführten Konzepte recht kompliziert finde. Ohne eine gute IDE würde ich mir dabei einen abbrechen.

encbladexp Team-Icon

Ehemaliger
Avatar von encbladexp

Anmeldungsdatum:
16. Februar 2007

Beiträge: 17688

Rust wird aktuell sehr gerne aus 2 Gründen genommen:

  1. Hype, z.B. die neuen coreutils welche die alten Fehler in einer neuen Programmiersprache nochmal neu erfinden.

  2. Embedded, hier profitiert man enorm im Gegensatz zu C oder C++

Ich finde vor allem das mit dem Hype schade, man sieht aktuell zunehmend schlechten Rust Code, weil jeder auf den Hype Train geht. Ich selbst habe mich irgendwann für Python und Go entschieden, weil das für meine Probleme passt und die Lernkurve von Rust in keinem Verhältnis zu den damit verbundenen Nachteilen steht.

Antworten |