Ich konnte leider nichts im Forum über "Datentypen in C" finden.
Kann mir bitte jemand von euch einen Überblick geben?
- char 8 bit
- short 16 bit
- etc.
Was bedeutet unsigned char genau? Ergibt sich dadurch "nur" ein
positiver Wertebereich?
Dominik M. schrieb:> Ich konnte leider nichts im Forum über "Datentypen in C" finden.>> Kann mir bitte jemand von euch einen Überblick geben?>> - char 8 bit>> - short 16 bit>> - etc.>> Was bedeutet unsigned char genau? Ergibt sich dadurch "nur" ein> positiver Wertebereich?
Was könnte wohl "unsigned" heissen?
Wie wäre es, wenn du dich nicht nur durch Forum hangeln würdest, sondern
dir auch mal anderweitig Lektüre besorgen würdest?
Google reicht da schon fast...
Dominik M. schrieb:> Ich konnte leider nichts im Forum über "Datentypen in C" finden.
Es gibt auch C-Bücher...
char ist die kleinste auf dem jeweiligen Rechner adressierbare Größe,
int die natürliche Größe des jeweiligen Prozessors.
short und long entsprechend.
char selbst kann signed oder unsigned sein, das kann der
Compilerhersteller machen wie er will.
Wenn man es genauer haben will, schreibt man signed oder unsigned davor.
STK500-Besitzer schrieb:> Was könnte wohl "unsigned" heissen?
naja, wenn ein char zufällig bspw. 8 Bit hat und das oberste davon das
Vorzeichen angibt, könnte unsigned auch heißen, daß es dann nur noch 7
Bit hat :-)
Ich bin wirklich sehr dankbar über eure Hilfe aber manche von euch
machen aus einer Mücke einen Elefanten. Ich wollte nur eine kurze
sachliche Hilfestellung und nicht DEINE offenen Meinung.
- char 8Bit
- short 16Bit
- very short 19,5Bit
- whole crate 24Bit (oder sind da 20 Drin?)
Mehr fällt mir spontan auch nciht ein, einfach mal nach googlen.
P.S.: Unsigned heißt "nicht gezeichnet" und bedeutet daß die Variable
gedruckt werden kann (kommt noch aus den Zeiten wo es Plotter gab).
Ratgeber schrieb:> Unsigned heißt "nicht gezeichnet" und bedeutet daß die Variable> gedruckt werden kann (kommt noch aus den Zeiten wo es Plotter gab)
und Motherboards heißen Mutterbretter. Das kommt noch aus den Zeiten als
Mutti den Computer zusammen gebaut hat.
"sign" ist einfach das Vorzeichen, also vorzeichenlos bzw
vorzeichen-behaftet. Will man den Wertebereich einer Zahl erweitern, muß
man halt irgendwie ein bit opfern (daß das Vorzeichen enthält) und kommt
dann auf ca. -128 .. +127 anstatt (+)0 .. (+)255
ps: sowas kann man auch in der Wiki nachlesen
http://de.wikipedia.org/wiki/Integer_%28Datentyp%29#Maximaler_Wertebereich_von_Integer
Mal im Ernst:
Es ist eine ziemliche Heimtücke von C, daß die Bitbreite der Datentypen
vom Prozessor (genauer gesagt: vom C-Compiler für diesen Prozessor)
abhängen.
Auf einem 16-Bit-Microcontroller ist ein "int" 16-Bit breit, auf einem
32-Bit-Controller ist das "int" 16-Bit breit. Und auf einem
8-Bit-Controller ist es... wieder 16-Bit breit.
Dies wird z.B. kritisch, wenn ein Microcontroller mit einem PC
kommuniziert, und beide die gleiche CRC-Routine benutzen, die "int"
verwendet.
Aus diesem Grund verwendet man gerne nachdefinierten Datentypen wie
"uint16_t", da kann man dann sicher sein, daß es ein "unsigned
16-Bit"-Typ ist.
>Auf einem 16-Bit-Microcontroller ist ein "int" 16-Bit breit, auf einem>32-Bit-Controller ist das "int" 16-Bit breit.
Doof!
Auf einem 32-Bit-Controller ist das "int" natürlich 32-Bit breit.
Dosmo schrieb:> Es ist eine ziemliche Heimtücke von C, daß die Bitbreite der Datentypen> vom Prozessor (genauer gesagt: vom C-Compiler für diesen Prozessor)> abhängen.
Das ist allgemein Bekannt und in jedem C-Für-Controller-Buch, Wiki und
sonstwas immer bei den ersten Schritten erklärt.
Wäre das etwas schwarze Magie, würde man hier viel öfter Probleme darauf
zurückführen können.
Dosmo schrieb:> Auf einem 32-Bit-Controller ist das "int" natürlich 32-Bit breit.
Und auf einem 64-Bit-Prozessor ist das "int" natürlich wie breit? ;-)
>Und auf einem 64-Bit-Prozessor ist das "int" natürlich wie breit? ;-)
Lach nicht! Unter Windows (LLP64) ist das "int" trotz 64-Bit-Prozessor
nur 32-Bit breit. Insofern darf vor Verwirrung gewarnt werden.
In Linux auch. War aber schlecht vermeidbar, weil man sonst einen
zusätzlichen Datentyp für 32 Bits hätte definieren müssen.
Noch besser wird es bei "long", da sich die beiden wichtigsten 64-Bit
Welten Windows und Linux darüber nicht einig sind, also ob das 64 Bits
sind (Linux, LP64) oder 32 (Windows, LLP64). Weil Microsoft höchstselbst
über die Interpretation und Kopplung von Typ und Grösse in Windows
stolperte und den Anwendern das natürliche "long" für 64 Bits nicht
zumuten wollte.
Wäre auch ziemlich ineffizient geworden dabei, vorallem für den
Heimbereich. Die meisten 64bit-Boxen, die in privaten Haushalten
herumstehen, sind total überflüssig. Will aber niemand verstehen,
Hauptsache mal 64bit.
Man stelle sich jetzt vor, Softwarepakete aus dem Quelltext heraus zu
übersetzen, wie es unter Linux üblich ist. Und auf einmal brauchen die
Programme mehr Arbeitsspeicher, weil der 'int' gewachsen ist?
Das lässt sich bisweilen blöderweise tatsächlich nur durch die
expliziten Typen (stdint.h) vermeiden. Dann allerdings skalieren die
Programme nicht mehr so, wie es ursprünglich mal gedacht war.
Dumme Sache, das :-}
Der Sprachkonstrukt ist unverständlich und unglaublich fehleranfällig,
verschiedene Kompiler erzeugen selbst aus trivialen Quelltexten
Kompilate mit unterschiedlichen Ergebnissen, ständig benötigte
Formatierungssymbole lassen sich auf deutschen Tastaturen nur per
Fingerakrobatik erreichen, hinsichtlich der Datentypen und Boundarywraps
bei Arrays auf Mikrocontrollern herrscht babylonische Verwirrung. Warum
eigentlich gibt es noch immer weltfremde, welche ernsthaft versuchen,
mit dieser möchtegern-Programmiersprache "Software" zu erzeugen? Leute,
das wird nichts. Liebe fehlgeleitete C-Jünger: Kommt 'raus aus euren
dunklen Kellern, wascht auch mal wieder und wischt die Pizza- und
Chipskrümel aus dem haarigen Gesicht. Lasst euch die von Cola und
Zigaretten zerstörten Zähne richten und lernt andere Menschen kennen,
vielleicht sogar welche vom anderen Geschlecht - dann wird das auch mit
dem rechten Arm bald wieder besser. Versucht nach vorne zu sehen,
redlich zu leben, Lebensfreude zu erkennen und schwört dem Schwachsinn
und der Verblendung ab! (und lernt JAVA, denn da gibts für das, was Ihr
in mehrjähriger mühevoller fronarbeit zusammengebastelt habt und als
vollfunktionsumfänglichesoftwarelösungfürdenmittelstand bezeichnet, eine
fertige Klasse!)
;-)
bernie schrieb:> Der Sprachkonstrukt ist unverständlich und unglaublich fehleranfällig,> verschiedene Kompiler erzeugen selbst aus trivialen Quelltexten> Kompilate mit unterschiedlichen Ergebnissen,
Was im Reglfall praktisch immer auf fehlende Kentnisse beim
Programmierer zurückzuführen ist.
> ständig benötigte> Formatierungssymbole lassen sich auf deutschen Tastaturen nur per> Fingerakrobatik erreichen,
dann nimm halt eine englische Tastatur. Da sind alle Sonderzeichen gut
zu erreichen
> hinsichtlich der Datentypen und Boundarywraps> bei Arrays auf Mikrocontrollern herrscht babylonische Verwirrung.
eigentlich tut es das .... nicht
> Warum> eigentlich gibt es noch immer weltfremde, welche ernsthaft versuchen,> mit dieser möchtegern-Programmiersprache "Software" zu erzeugen?
Weil diese 'Möchtegern-Programmierer' mit diese Sprache bisher eine
Unmenge von ganz ordentlicher Software geschrieben haben?
>> redlich zu leben, Lebensfreude zu erkennen und schwört dem Schwachsinn> und der Verblendung ab! (und lernt JAVA,
hahahahahaha.
Danke. You made my day.
bernie schrieb:> Der Sprachkonstrukt ist unverständlich und unglaublich fehleranfällig,
Das druck ich mir aus, genial :-D
Was die Sonderzeichen und die kryptischen Konstrukte angeht:
Arbeite einmal eine Woche lang ernsthaft mit VHDL (wobei du die
Einarbeitungsphase natürlich schon hinter dir hast, also ernsthaftes,
produktives Arbeiten meine ich).
Ich verspreche dir: Du wünschst dir nichts sehnlicher zurück, als C.
VHDL ist sicherlich eine Sprache, die man wunderbar lesen kann. Aber
bald gehen dir die endlos langen Schlüsselworte und das ständige
Wiederholen von Textpassagen so abartig auf den Zeiger... dann doch
lieber ({[]}).
Aber du hast schon Recht, es ist gut, dass man diese Sonderzeichen in
Java nicht braucht...
bernie schrieb:>> hahahahahaha.>> Danke. You made my day.>> Überzeugter C-Fan, vermute ich?
Auch.
Aber seit vielen Jahren ist es C++.
(womit wir dann auch bei Klassen wären)
bernie schrieb:> Der Sprachkonstrukt ist unverständlich und unglaublich fehleranfällig...
Was meine alte Theorie bestätigt: Leute, die natürlichen Text nicht
formulieren können und eine Rechtschreibschwäche haben, können auch
nicht programmieren.
Je schlimmer die Formulierungen, umso größer die Probleme beim
Programmieren.
Das Forum hier ist voll von Beispielen dafür.
(Aber für die gibt es ja VB und Konsorten, also alles kein Problem.)
Klaus Wachtler schrieb:> Was meine alte Theorie bestätigt: Leute, die natürlichen Text nicht> formulieren können und eine Rechtschreibschwäche haben, können auch> nicht programmieren.
Wobei man aber auch bei eher unterentwickelter Rechtschreibschwäche
trotzdem C und insbesondere C++ nicht unbedingt mögen muss. C mag in den
70ern und 80ern leidlich adäquat gewesen sein, weil man mit geringem
Aufwand Compiler für alle Plattformen stemmen konnte. Und wesentlich
damit, sowie mit Unix, hängt auch der heutige Erfolg von C zusammen.
Nicht jedoch mit seiner Qualität als Programmiersprache.
An sich ist C aus heutiger Sicht eine ziemliche Zumutung und C++ ist
m.E. eher schlimmer, weil es vorgibt, eine highlevel Sprache zu sein,
aber all den dabei hinderlichen lowlevel Kram von C mitschleppt. Von der
syntaktischen Seite ganz abgesehen - da hatte mir C++ bereits beim
ersten Kontakt wenig Freude bereitet. Und ich meine damit nicht die
Sonderzeichenverwendung - meine erste Programmiererfahrung fand
schliesslich in APL statt ;-).
Aber diese Sprachen sind nun einmal da, sie sind verwendbar und ich
kenne mich in beiden ganz passabel aus. Ist ein bisschen wie Deutsch,
das ist auch nicht die beste Sprache unter der Sonne, aber ich kann es
nun einmal besser und die Verständigung mit der Umgebung klappt auch
besser.
bernie schrieb:> Versucht nach vorne zu sehen,> redlich zu leben, Lebensfreude zu erkennen und schwört dem Schwachsinn> und der Verblendung ab! (und lernt JAVA, denn da gibts für das, was Ihr> in mehrjähriger mühevoller fronarbeit zusammengebastelt habt und als> vollfunktionsumfänglichesoftwarelösungfürdenmittelstand bezeichnet, eine> fertige Klasse!)>> ;-)
Um noch mehr Fehler und Kosten dank Java zu erzeugen...
http://www.heise.de/newsticker/meldung/Unterhalt-von-Java-Software-teurer-als-von-Cobol-Programmen-1392849.html
Klaus Wachtel schrieb:
> Was meine alte Theorie bestätigt: Leute, die natürlichen Text nicht> formulieren können und eine Rechtschreibschwäche haben, können auch> nicht programmieren.
Hm, interessanter Ansatz. Meiner Ansicht nach leider ich weder unter
einer Rechtschreibschwäche, noch kann ich bei nochmaligen durchlesen
meines Postings eklatante Rechtschreibfehler entdecken. Aber Du zielst
sicher auf etwas anderes ab und empfindest z.B. sowas hier:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
als "verständlichen, natürlichen" Text? Bestimmt kannst Du beim bloßen
Anblick dieses "übersichtlichen" und "gut strukturierten" Quelltexte
sofort sagen, was das Ergebnis dieses m.E. nach Murks ist, sofern
irgendein Compiler sich gewogen fühlt, daraus soetwas ähnliches wie ein
lauffähiges Programm zu erzeugen. Kann es sein, das es sich bei Dir um
einen unverbesserlichen C-Fanboy mit mangelhafter Sozialisierung
handelt, der sich gerade ganz kräftig auf den Schlips getreten fühlt,
weil es jemand gewagt hat, "seine" Programmiersprache, den Mittelpunkt
seines Daseins, das Einzige, was er seit 20 Jahren so einigermaßen
beherrscht, als Spielzeug für Sonderschulkinder bloßzustellen? Wenn es
für Dich i.O. ist, Deinen trübseligen und belanglosen Alltag mit dem
Schreiben von funktions- und ergebnislosen C-Quelltexten etwas
aufzuheitern - Nur zu. So richtest Du wenigstens (hoffentlich!)
anderweitig keinen Schaden an.
bernie schrieb:> Hm, interessanter Ansatz. Meiner Ansicht nach leider ich weder unter> einer Rechtschreibschwäche, noch kann ich bei nochmaligen durchlesen> meines Postings eklatante Rechtschreibfehler entdecken. Aber Du zielst> sicher auf etwas anderes ab und empfindest z.B. sowas hier:
Vielleicht eher darauf, dass ein Konstrukt ein Neutrum ist, und daher
"Der Sprachkonstrukt ist unverständlich" auch in schönster
Selbstbezüglichkeit zutrifft ;-). Aber das ist Korinthenkackerei, wenn
ernst gemeint.
Aber ich halte wenig von seiner These, denn ich kann in meinem
Bekanntenkreis keine Korrelation zwischen Rechtschreibung und Fähigkeit
zum Programmieren erkennen. Eine gewisse Legasthenie muss dabei auch
kein Hindernis darstellen. Wogegen gute Rechtschreibung und völlige
Unfähigkeit zur Programmierung durchaus zusammen zu passen scheinen.
Oh ein JAVA Fanboy. IHMO ist es in C aufwendiger, sauber zu
programmieren. Man muss eben nicht unsichere Sprachelemente benutzen.
in jeder anderen Programmiersprache ebenso Mist machen. Man muss wissen,
was man macht.
bernie schrieb:> und empfindest z.B. sowas hier: [...]
Und das geht in Java, Basic, Pascal, Cobol, Fortran und Konsorten nicht?
Du verwechselst da Programmiersprache und Programmierer!
Was ganz genau stört dich denn so gewaltig an C, was andere so viel
besser machen? Dass C(++) sich so wacker hält, hat viele Gründe.
Meiner Meinung nach sind C- bzw. C-ähnliche Sprachen immer noch die am
besten les- und wartbaren, sofern der Programmierer das denn auch
möchte: Wenig Boilerplate, kein überflüssiger 'syntactic sugar'; das
sind Kernprinzipien.
Ein richtiger Schritt nach vorne kam m.M.n. erst wieder, als funktionale
Sprachen wieder populär wurden. Alles andere ist/war Augenwischerei.
bernie schrieb:> Klaus Wachtel schrieb:>>> Was meine alte Theorie bestätigt: Leute, die natürlichen Text nicht>> formulieren können und eine Rechtschreibschwäche haben, können auch>> nicht programmieren.>> Hm, interessanter Ansatz. Meiner Ansicht nach leider ich weder unter> einer Rechtschreibschwäche, noch kann ich bei nochmaligen durchlesen> meines Postings eklatante Rechtschreibfehler entdecken. Aber Du zielst> sicher auf etwas anderes ab und empfindest z.B. sowas hier:>> float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||> (h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_> %6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}>> als "verständlichen, natürlichen" Text? Bestimmt kannst Du beim bloßen> Anblick dieses "übersichtlichen" und "gut strukturierten" Quelltexte> sofort sagen, was das Ergebnis dieses m.E. nach Murks ist, sofern> irgendein Compiler sich gewogen fühlt, daraus soetwas ähnliches wie ein> lauffähiges Programm zu erzeugen. Kann es sein, das es sich bei Dir um> einen unverbesserlichen C-Fanboy mit mangelhafter Sozialisierung> handelt, der sich gerade ganz kräftig auf den Schlips getreten fühlt,> weil es jemand gewagt hat, "seine" Programmiersprache, den Mittelpunkt> seines Daseins, das Einzige, was er seit 20 Jahren so einigermaßen> beherrscht, als Spielzeug für Sonderschulkinder bloßzustellen? Wenn es> für Dich i.O. ist, Deinen trübseligen und belanglosen Alltag mit dem> Schreiben von funktions- und ergebnislosen C-Quelltexten etwas> aufzuheitern - Nur zu. So richtest Du wenigstens (hoffentlich!)> anderweitig keinen Schaden an.
Mag sein, dass solche Programme in C möglich sind (ohne das jetzt zu
überprüfen), allerdings ist immer der Programmierer für seinen Quelltext
verantwortlich.
Wer so etwas schreibt, macht das nicht ohne den Hintergedanken, die
"Schweinereien" einer Programmiersprache darzustellen.
Insofern kann man solche Konstrukte durchaus als Hinweis auf eine
"Rechtschreibschwäche" bestimmter Personengruppen betrachten.
Wie schon oben erwähnt, sehe ich C heute auch eher als Zumutung an.
Dennoch hat C, vor allem aufgrund seiner Historie, ziemlich viele
Einsatzgebiete gefunden, insbesondere wenn es um hardwarenahe
Programmierung geht.
Andere Sprachen erhalten auf diesen Gebieten einfach nicht denselben
Support (im Hinblick auf verfügbare Compiler u.a.) oder machen zu große
Einschränkungen.
MfG
Ich finds lustig, wenn sich jetzt wieder an weltfremden Beispielen um
Kopf und Kragen argumentiert wird :-)
Aber zum Ausgangsproblem: Einige Einschränkungen für die eingebauten
Typen finden sich noch im Standard, das sind dann ein paar
Mindestbreiten und Größenverhältnisse zueinander.
bernie schrieb:> Klaus Wachtel schrieb:
Es gibt bei der Volkshochschule vielleicht einen Einsteigerkurs für
"copy & paste" oder "Zitieren für Anfänger"?
>>> Was meine alte Theorie bestätigt: Leute, die natürlichen Text nicht>> formulieren können und eine Rechtschreibschwäche haben, können auch>> nicht programmieren.>> Hm, interessanter Ansatz. Meiner Ansicht nach leider ich weder unter> einer Rechtschreibschwäche, noch kann ich bei nochmaligen durchlesen> meines Postings eklatante Rechtschreibfehler entdecken.
Du schaffst es ja nicht mal, den Namen korrekt zu zitieren - vermutlich
also nur Getrolle, der Rest deiner Äußerungen passt dazu.
Leider weiter....
> Aber Du zielst> sicher auf etwas anderes ab und empfindest z.B. sowas hier:>> float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||> (h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_> %6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}>> als "verständlichen, natürlichen" Text?
Nein, falsch geraten - oder schlecht getrollt.
Wenn deine C-Kenntnisse nicht über diese Art von Programm hinausreichen,
macht es Sinn, bei etwas anderem zu bleiben.
Ob deine Java-Programme besser sind, kann ich nicht beurteilen.
Aber in letzter Zeit scheint es Mode zu sein, daß in jedem Thread
irgendein selbsternannter Experte seine neue Erkenntnis loswird, daß C
so schlecht und alles andere so toll, egal um welches Thema es geht und
egal, ob es jemand hören will.
Vielleicht ist es ja auch nur immer derselbe Troll, der stänkern will.
Zur Erinnerung: es geht in diesem Forum um Mikrokontroller (was das ist,
kann man z.B. auf Wikipedia schon mal ansatzweise in Erfahrung bringen).
Da ist es sicher hilfreich und Quell unendlichen Dankes, die Leute von C
oder dem noch schlimmeren Assembler zu heilen und zum
Licht^H^H^H^H^HJava zu führen.
Alleine beim Anblick dieses guten Rats erschließt sich schnell deine
umfassende Kenntnis von der Materie, Glückwunsch!
> Bestimmt kannst Du beim bloßen> Anblick dieses "übersichtlichen" und "gut strukturierten" Quelltexte> sofort sagen, was das Ergebnis dieses m.E. nach Murks ist,
Da hast du ausnahmsweise sogar Recht - das ist Murks.
Aber kann die Sprache etwas dafür?
Kann die deutsche Sprache etwas dafür, daß jemand so einen Mist darin
erzählt?
Und in Java werden im Umkehrschluß nur gute Programme geschrieben? Und
du bist ein toller Programmierer, weil du Hello World in Java gemeistert
hast?
Logisches Denken scheint nicht deine Stärke zu sein.
> sofern> irgendein Compiler sich gewogen fühlt, daraus soetwas ähnliches wie ein> lauffähiges Programm zu erzeugen. Kann es sein, das es sich bei Dir um> einen unverbesserlichen C-Fanboy
falsch.
> mit mangelhafter Sozialisierung
falsch.
> handelt, der sich gerade ganz kräftig auf den Schlips getreten fühlt,> weil es jemand gewagt hat, "seine" Programmiersprache, den Mittelpunkt> seines Daseins, das Einzige, was er seit 20 Jahren
länger, aber nicht nur C.
> so einigermaßen beherrscht,
hoffentlich besser als du.
> als Spielzeug für Sonderschulkinder bloßzustellen?
Wenn das deine Meinung ist, aber sie zeugt nicht von Fachkenntnis.
> Wenn es> für Dich i.O. ist, Deinen trübseligen und belanglosen Alltag mit dem> Schreiben von funktions- und ergebnislosen C-Quelltexten etwas> aufzuheitern - Nur zu. So richtest Du wenigstens (hoffentlich!)> anderweitig keinen Schaden an.
Den Gefallen werde ich dir nicht tun, ich mache auch anderweitig die
Welt unsicher.
Wenn du dich vollkommen zum Horst machen willst, dann zeig doch mal, was
für tolle Sachen du auf einem Controller in Java machst. Vielleicht
kannst du ja jemanden wirklich beeindrucken.
Ich werde es wohlwollend begleiten...
Aber nimm es nicht so schwer, anonym kann man getrost den grössten
Blödsinn erzählen. Morgen in der Schule weiß ja keiner, wer es war.
Klaus Wachtler schrieb:> Wenn du dich vollkommen zum Horst machen willst, dann zeig doch mal, was> für tolle Sachen du auf einem Controller in Java machst.
Daß er irgendwas mit Java macht, ist eher unwahrscheinlich, denn da
bräuchte er auch genau die
> ständig benötigte[n] Formatierungssymbole[, die] (...) sich auf> deutschen Tastaturen nur per Fingerakrobatik erreichen [lassen]
Und bei den
> Boundarywraps bei Arrays (...) herrscht [in Java die gleiche]> babylonische Verwirrung [wie in C]
nämlich exakt keine.
Also wird der gudsde mit irgendeinem Pascal- oder Basic-Dialekt die Welt
verbessern wollen.
Dosmo schrieb:> Es ist eine ziemliche Heimtücke von C, daß die Bitbreite der Datentypen> vom Prozessor (genauer gesagt: vom C-Compiler für diesen Prozessor)> abhängen.
Es ist "Implementaton Defined", hängt also einzig und allein vom
verwendeten Compiler ab.
Es gibt keinen Bezug zwischen int, short, long, ... zur Hardware —
zumandest was den Sprachstandard angeht.
Freilich wird die Implementierung i.d.R so gemacht, daß sie halbwegs
effizient auf die Hardware abbildet.
Aber einem C-Compiler ist es nicht verboten, int für einen AVR als 64
Bit zu implementieren oder auf einem Itanium-64 als 16 Bit.
Naja die Sprache C ist ja auch nicht stehen geblieben. Mit C99 kamen
schon viele Verbesserungen.
Wenn man programmiert, egal wechle Sprache, muss man sich immer Gedanken
machen um die Datentypen. Muss die Anwedung portierbar sein oder will
ich einfach möglichst kompakten Code?
@Dominik
Google ist dein Freund, wirklich!
Schau mal hier:
http://en.wikipedia.org/wiki/C_data_types
Bei den meisten Compilern wird noch eine stdint.h mitgeliefert. Diese
definieren Datentypen wie uint8_t usw. die eben garantiert 8Bit sind.
Klaus Wachtler schrieb:> bernie schrieb:>> Der Sprachkonstrukt ist unverständlich und unglaublich fehleranfällig...>> Was meine alte Theorie bestätigt: Leute, die natürlichen Text nicht> formulieren können und eine Rechtschreibschwäche haben, können auch> nicht programmieren.> Je schlimmer die Formulierungen, umso größer die Probleme beim> Programmieren.> Das Forum hier ist voll von Beispielen dafür.>> (Aber für die gibt es ja VB und Konsorten, also alles kein Problem.)
Also so eine These oder Theorie halte ich gelinde gesagt für gewagt.
Etwas direkter ausgedrückt, diese "These" ist der blanke Unsinn. In
meiner Schulzeit waren Mädchen im Schnitt IMMER signifikant besser in
Rechtschreibung gegenüber den Jungs. Nur waren sie dafür in Mathe so
ziemlich alle Nieten und ich wage mal zu behaupten, dass die Mathe
ungleich wichtiger im Sinne des strukturierten Denkens ist, als ein
Diktat fehlerfrei oder mit wenigen Fehlern abliefern zu können.
Also gute Diktatschreiber sind mit Sicherheit nicht die herausragenden
Programmierer, sonst wären Chef-Sekretärinnen schließlich die Clientel
für den Softwaremarkt. ;-)
> Was meine alte Theorie bestätigt: Leute, die natürlichen Text nicht> formulieren können und eine Rechtschreibschwäche haben, können auch> nicht programmieren.
Ich denke das die Rechtschreibung nicht entscheidend ist. Das sind
Konventionen die man kennen kann oder nicht. Eine Frage des
Gedächtnisses.
Anders ist es mit der Ausdrucksfähigkeit, die meiner Ansicht nach
ziemlich direkt mit der Differenziertheit des Denkens zu tun hat.
Denken erfolgt im allgemeinen in Bildern und Worten. Wer also nur wenige
Begriffe hat muss umschreiben und das wird recht kompliziert wenn es
einen Sachverhalt korrekt und dem Zweck entsprechend vollständig
darstellen soll.
Wohlgemerkt, die Fähigkeiten zeigen sich nicht direkt in der Menge an
verfügbaren Begriffen sondern darin sich korrekt auszudrücken.
Aber, wer das eine Weile so macht, dabei liest, sich informiert und mit
anderen spricht lernt neue Begriffe und den Vorteil ihrer
Spezialisierung kennen und benutzt sie auch, weil es sprachökonomischer
ist.
Jemand der sich nicht korrekt und verständlich ausdrücken kann hat weder
die Fähigkeiten zu umschreiben noch neue Begriffe zu lernen, zu
assimilieren oder auch neue Begriffe zu schöpfen.
Eben dies korreliert mit der Fähigkeit zu der Art denken die beim
programmieren nötig ist.
Überblick und Einzelheiten, Syteme und Wechselwirkungen, zeitliche
Abläufe, Ursache-Wirkung. Wer die Bedeutung dieser Dinge in Bezug auf
z.B. die Sprache nicht verstanden hat, hat sie auch sonst nicht
verstanden.
g. c. schrieb:> meiner Schulzeit waren Mädchen im Schnitt IMMER signifikant besser in> Rechtschreibung gegenüber den Jungs. Nur waren sie dafür in Mathe so> ziemlich alle Nieten
Den Zusammenhang mit Mathe kann ich nicht feststellen. Für Physik traf
das zu, aber nicht für Mathe, da waren die Mädels mit vorne dabei. In
Qualität wie Interesse.
g. c. schrieb:> Also so eine These oder Theorie halte ich gelinde gesagt für gewagt.> Etwas direkter ausgedrückt, diese "These" ist der blanke Unsinn. In> meiner Schulzeit waren Mädchen im Schnitt IMMER signifikant besser in> Rechtschreibung gegenüber den Jungs. Nur waren sie dafür in Mathe so> ziemlich alle Nieten und ich wage mal zu behaupten, dass die Mathe> ungleich wichtiger im Sinne des strukturierten Denkens ist, als ein> Diktat fehlerfrei oder mit wenigen Fehlern abliefern zu können.
Er hat nie behauptet, dass jeder der gut in Rechtschreibung und
Grammatik ist, auch gut programmieren kann.
Er hat gesagt, dass jemand, der keine Rechtschreibung und Grammatik
beherrscht, kein guter Pogrammierer sein kann.
¬A -> ¬B
heißt nicht automatisch
A -> B
Vlad Tepesch schrieb:> Er hat nie behauptet, dass jeder der gut in Rechtschreibung und> Grammatik ist, auch gut programmieren kann.> Er hat gesagt, dass jemand, der keine Rechtschreibung und Grammatik> beherrscht, kein guter Pogrammierer sein kann.
Auch dafür gibt es keinen Beweis. Was kann man schon aus
hingeschlotterten Forentexten ableiten?! Hier im Forum sind die größten
Helden unterwegs, die gerne an anderen herumnörgeln, aber selbst
konsequent Groß- und Kleinschreibung missachten. Können die jetzt kein
bisschen programmieren, bloß weil die "alles falsch" schreiben?
> Also wird der gudsde mit irgendeinem Pascal- oder Basic-Dialekt> die Welt verbessern wollen.
C ist deiner Ansicht nach besser als Pascal und BASIC . OK .
Das ändertaber nichts daran das COBOL und FORTRAN besser als C sind !
;-)))
-> Die beste Programmiersprache ist die, die jemand richtig beherrscht .
fortran-freund schrieb:> Die beste Programmiersprache ist die, die jemand richtig beherrscht .
Im Prinzip ja, praktisch aber nicht.
Was nützt eine Programmiersprache, die jemand perfekt beherrscht, die
aber für eine Aufgabe ungeeignet ist?
Rufus Τ. Firefly schrieb:> fortran-freund schrieb:>> Die beste Programmiersprache ist die, die jemand richtig beherrscht .>> Im Prinzip ja, praktisch aber nicht.>> Was nützt eine Programmiersprache, die jemand perfekt beherrscht, die> aber für eine Aufgabe ungeeignet ist?
Das müßte bei dem Umfang aktueller Programmiersprachen aber eine sehr
spezielle Aufgabe sein . Außerdem kann man ja unter Windows auf externe
DLLs zugreifen und so fehlende Funktionen erweitern .
Andererseits aber eine Finanzsoftware unter Windows mit GUI in 4th oder
ein MC-Soundsynthesizer in SmallTalk wird wohl keiner wirklich
programmieren wollen .
;-)
fortran-freund schrieb:> Das müßte bei dem Umfang aktueller Programmiersprachen aber eine sehr> spezielle Aufgabe sein .
Da es in diesem Forum auch um die Microcontrollerprogrammierung geht
(wenn auch nicht in diesem Unterforum hier), ist diese spezielle Aufgabe
sehr schnell erreicht - einen µC will wohl kaum wer in so etwas wie
Fortran, Cobol, Lisp etc. programmieren, geschweige denn, daß es für
derartige Versuche überhaupt Compiler geben dürfte.
Übrigens: Du plenkst.
Rufus Τ. Firefly schrieb:> Da es in diesem Forum auch um die Microcontrollerprogrammierung geht> (wenn auch nicht in diesem Unterforum hier), ist diese spezielle Aufgabe> sehr schnell erreicht - einen µC will wohl kaum wer in so etwas wie> Fortran, Cobol, Lisp etc. programmieren, geschweige denn, daß es für> derartige Versuche überhaupt Compiler geben dürfte.
Sag das nicht zu laut...
http://armpit.sourceforge.net/
"Armpit Scheme, once loaded, governs the operation of the MCU, and is
"Scheme to the metal" in the sense of running without any other OS. It
may be thought of as turning the MCU into a rudimentary Scheme machine."
scnr