Angefangen hat alles mit Bits und Bytes.
"C" kennt aber gar kein Byte.
Das kann man sich dann selbst definieren, (unsigned char)
also eine Ableitung von einem "negativen Ascii-Character" ohne Vorzeichen.
Was für ein Scheiss ist das denn....
Und wo ist da nun das Problem? 8 Bit sind 8 Bit, egal wie du es nennst.


Bei Abfragen ob etwas gleich ist, muss man
nicht etwa "=" schreiben, das wär wohl zu "ungenau",
nein, man muss "==" schreiben, also "besonders gleich"
if(a=b) und if(a==b sind nunmal 2 völlig unterschiedliche Dinge!

Vernünftige Compiler können Boolsche Ausdrücke von logischen Ausdrücken
selbst unterscheiden. Bei "C" geht das nicht. Und da es schon nicht geht,
können wir auch gleich noch entsprechende Sonderzeichen einführen,
dann merkt man das nicht sofort.
Aus XOR wird ^
aus AND wird &
Und auch hier heisst es wieder "besonders und" && oder
besonders oder "||" was generell mit Klammern umschrieben wird.
Naja wen wundert es da noch, daß man für "<>" kleiner größer auch gleich
was neues erfunden hat: != also "Achtung Nicht Gleich" ist gemeint.
Achja, habt Ihr schon mal versucht mit Strings zu arbeiten in "C"
Das war anscheinend nie vorgesehen und so hat man eine Bibliothek
namens "strings" rangebastelt.
Und welche Sprache macht das anders?!

Nun sollte man aber nicht glauben, daß man damit "vernünftig" arbeiten kann.
Wo ist denn die Funktion zum Einfügen eines Characters oder Strings in einen
Vorhandenen ??? "StrIns" oder so ähnlich....
Es gibt in C einige Funktionen zum Arbeiten mit Zeichenketten, bzw. char-Arrays!

Da ich schon beim Thema Strings bin, kann ich folgendes definieren in C
char name[]="Hallo";
wenn ich das im Programmcode versuche:
name = "Hallo"; geht es plötzlich nicht mehr.
Richtig, aber auch dafür gibt es Funktionen, mit denen das schnell und einfach geht!

Die Fehlerhäufigkeit in meiner Software ist exponentiell zum "verkürzten, kryptischen C Code"
angestiegen. Und Gott und die Welt programmiert nun mit dem Schei........
Nur weil dir der Compiler bzw. die Entwicklungsumgebung die Arbeit nicht abnimmt...

Den letzten Artikel von "Besserwessi" finde ich sehr gut.
Die neueren Compiler zwingen einem schon eine gewisse Disziplin einzuhalten.
Das find ich auch gut so, lieber einen Warning mehr, der im Vorfeld schon auf Fehler
deuten kann. Auch meine negative Äußerung , was z.B die Stringverarbeitung angeht,
ist ja schon wesentlich besser gelöst worden in C++ Jave usw.
Hatte übrigens Pascal schon von Anfang an besser gelöst.
Nullterminierte Strings sind einfach "Grütze" darf ich das so sagen ???
Haben in anderen Sprachen Strings kein Ende?! Auch da nimmt dir der Compiler nur etwas arbeit ab. Dafür hast du wiederrum in C viel mehr Möglichkeiten, was natürlich schlecht ist wenn man nciht weiss was man tut.

Hier habe ich aber
schon aus diesem Forum erfahren, daß die meisten Compiler eine Schalter haben um diese Optimierung
abzuschalten. -noinline oder ähnliches.
Oder auch in mehreren Stufen, mehr oder weniger Sinnvoll...

Was steht denn in den "verlorenen" 6 KByte ??? Für Sicherheitsrelevenate Anwendungen z.B.
in der Medizintechnik ist das für mich unverantwortlich, mal eben 6 KByte Code wegzulassen.
Wenns dann funktioniert okay....
Der Code ist ja nun nicht einfach weg! Der wurde optimiert, und Teile wenn sie garnicht verwendet werden weggelassen. Gerade bei der µC Programmierung auf Grund des geringen Speicherplatzes oft sehr hilfsreich.

Bin ich ein "C"-Gegner ? Jaaaaaaaaa
Ja wenn du schon 30 Jahre in Assembler programmierst, dann is auch klar warum... Mir kommt es eher so als würdest du es garnicht verstehen wollen. Man könnte dir wahrscheinlich 100 Argumente für C geben und trotzdem würdest du es nicht akzeptieren wollen.