Hallo zusammen, warum geht das so in C nicht ??? int j=0; j++=7; bzw. int a[10]={0}; int *c=a; (*c)++=7; Fehler: Linker Operand muss ein L-Wert sein.... was macht der Operator ++ in seiner Definition? Vielen Dank Gruß
:
Verschoben durch Moderator
C Code schrieb: > warum geht das so in C nicht ??? > > int j=0; > j++=7; Anders herum gefragt: Was möchtest du mit diesem seltsamen Ausdruck bezwecken?
++ ist quasi eine Funktion, die dir einen Rückgabewert gibt. Diesem Rückgabewert willst du dann einen neuen Wert zuweisen. Siehe auch z.B. http://www.rn-wissen.de/index.php/C-Tutorial#Lvalues
Das geht nicht weil der compiler das nicht versteht. der Operator ++ mach das selbe wie int j = j + 1. Die kürzere version davon ist j++
++ ist ein unärer Operator. Die Kombination aus zwei Operanden ist daher nicht möglich. Was du machen wolltest war wahrscheinlich: (*c++)=7;
Hä was willst du den machen ? j inkrementieren und dann 7 dazu zählen j = j++ + 7; // da könnest du aber gleich + 8 schreiben wenn du zu j 7 dazu zählen willst dann j += 7;
Vielen Dank, nein ich wollte mal einige Möglichkeiten ausprobieren: z.B. c += 38; *c = 78; *(++c) = 88; *++c = 3; *(c++) = 2; *c++ = 1; (*c)++; (*c)++ = 4; Dank an alle :-)
C Code schrieb: > nein ich wollte mal einige Möglichkeiten ausprobieren: und hast du auch verstanden, was da als Ergebnis deiner verschiendenen Versuchausdrücke raus kommt? Oder wolltest du prüfen, welchen Ausdruck dein Compiler ohne Fehlermeldung verdaut?
:
Bearbeitet durch User
C Code schrieb: > nein ich wollte mal einige Möglichkeiten ausprobieren: > > z.B. > > c += 38; > *c = 78; > *(++c) = 88; > *++c = 3; > *(c++) = 2; > *c++ = 1; > (*c)++; > (*c)++ = 4; Development by accident?
>> j = j++ + 7; >Das ist kein legales C, sondern undefined behavior. Glaube ich nicht. j++ ist postincrement nach der Instruktion d.h. j=j+7 j++
Geht das schon wieder los :-( markus schrieb: > Glaube ich nicht. Glauben heißt nicht wissen. Das hat etwas mit Sequence Points zu tun, zwischen denen eine Variabel nur einmal geändert werden darf. Das j++ kann auch erst am Ende dieses Sequence Point wirken. Dann hast du nur j++, da das Ergebnis von dem +7 überschrieben wird. Es mag sein, dass auf deinem aktuellen System mit deinem aktuellen Compiler das so funktioniert, wie du es beschrieben hast. Kann aber mit der nächsten Compilerversion auch wieder anders sein. Kann man auch im C-Standard nachlesen.
C Code schrieb: > warum geht das so in C nicht ??? Gegenfrage: Warum zum Kuckuck kannst du dich nicht zusammenreißen und einen einfachen und biederen Code schreiben? Also eine Quelle, wo nicht immer alles mit irgendwlchen Kunststückchen zusammengeschustert ist, sondern brav alles separat und einfach nachvollziehbar hingeschrieben ist? Die Ausrede "ja die anderen machen sowas ja auch.." ist in Wahrheit eben KEINE Ausrede. Also lerne keine Ober-Kunststückchen, sondern solide, biedere, quasi defensive Notation zu schreiben. Auf Dauer ist das tausendmal besser als alle Quellcode-Husarenstücke. Und nochwas: C ist unverständlich, man kann es nicht verstehen, da die meisten Regeln nicht logisch sind, sondern als eine Art Ordre de Mufti daherkommen. Es ist ein bissel wie der "wissenschaftliche Kommunismus". Deswegen muß man C eben lernen und sich die Bedeutung der Kringel eben merken. Heutzutage ist sowas wie y=a++ überflüssiger als ein Kropf, denn jeder aktuelle Compiler kann problemlos y=a; a=a+1; genauso gut optimieren. Aber lernen, was a++ bedeutet und wo der Unterschied zu ++a liegt, mußt du trotzdem. W.S.
markus schrieb: > Glaube ich nicht. Das ändert nichts an den Tatsachen. Und zeigt wieder mal schön, daß selbst die Grundregeln der Sprache den allermeisten C-Programmierern nicht bekannt sind.
Bei nicht Pointer ist dieser Falle genau definiert, nicht aber bei Pointern. j = j++ + 7; Wenn j aber ein Pointer ist, sollte man j++=j+7 schreiben, was dann auch wiederum genau definiert ist. Dies hingegen ist Immmer!! genau definiert: i=i++;
Stefan Rand schrieb: > Und zeigt wieder mal schön, daß selbst die Grundregeln der Sprache den > allermeisten C-Programmierern nicht bekannt sind. Was wiederum daran liegt, daß die allermeisten C-Programmierer eigentlich garkeine Programmierer mehr sind, sondern nur noch Leute, die ihre Zeit damit verbringen, von anderen geschriebene Sources zusammenzuklauben und dann notdürftig zusammenzunageln. Hauptsache der Compiler läuft ohne Showstopper-Fehlermeldungen durch. Warnungen werden unterdrückt und ein Blick in den kopierten Code ist sowieso die absolute Zumutung. Wenn der Compiler ohne Fehler durchläuft, wird schon alles in Ordnung sein...
chris schrieb: > Bei nicht Pointer ist dieser Falle genau definiert, nicht aber bei > Pointern. > j = j++ + 7; > Wenn j aber ein Pointer ist, sollte man > j++=j+7 > schreiben, was dann auch wiederum genau definiert ist. > Dies hingegen ist Immmer!! genau definiert: > i=i++; Einfach ausgedrückt: Du schreibst Unsinn. Und zwar in allen Punkten. Nichts, aber auch gar nichts, von dem was du geschrieben hast, ist korrekt.
:
Bearbeitet durch User
chris schrieb: > Bei nicht Pointer ist dieser Falle genau definiert, nicht aber bei > Pointern. Völliger Blödsinn.
W.S. schrieb: > Gegenfrage: > > Warum zum Kuckuck kannst du dich nicht zusammenreißen und einen > einfachen und biederen Code schreiben? Also eine Quelle, wo nicht immer > alles mit irgendwlchen Kunststückchen zusammengeschustert ist, sondern > brav alles separat und einfach nachvollziehbar hingeschrieben ist? > > Die Ausrede "ja die anderen machen sowas ja auch.." ist in Wahrheit eben > KEINE Ausrede. > > Also lerne keine Ober-Kunststückchen, sondern solide, biedere, quasi > defensive Notation zu schreiben. Auf Dauer ist das tausendmal besser als > alle Quellcode-Husarenstücke. > > Und nochwas: C ist unverständlich, man kann es nicht verstehen, da die > meisten Regeln nicht logisch sind, sondern als eine Art Ordre de Mufti > daherkommen. Es ist ein bissel wie der "wissenschaftliche Kommunismus". > Deswegen muß man C eben lernen und sich die Bedeutung der Kringel eben > merken. > > Heutzutage ist sowas wie y=a++ überflüssiger als ein Kropf, denn jeder > aktuelle Compiler kann problemlos y=a; a=a+1; genauso gut optimieren. > Aber lernen, was a++ bedeutet und wo der Unterschied zu ++a liegt, mußt > du trotzdem. Entschuldigung :-) weil ich gerade an der Hochschule C-Programmieren lerne und das eine Aufgabe war. Also Danke an alle Gruß C Code
C Code schrieb: > Entschuldigung :-) weil ich gerade an der Hochschule > C-Programmieren lerne Autsch. si tacuisses philosophus mansisses Wenn du nichts gesagt hättest, hätte man dir immerhin noch einen Bastlerstatus attestieren können, mit dem du dich aus der Affäre ziehen hättest können. > was macht der Operator ++ in seiner Definition? Für einen Studenten ist so eine Frage nicht akzeptabel. Kleiner Tip: bei so manchen Fragen hier im Forum ist es für den Fragesteller wesentlich besser, wenn er nicht erwähnt, dass er die Sache für sein Studium braucht.
:
Bearbeitet durch User
>Autsch. >si tacuisses philosophus mansisses >Wenn du nichts gesagt hättest, hätte man dir immerhin noch einen >Bastlerstatus attestieren können, mit dem du dich aus der Affäre ziehen >hättest können. Allerdings gilt auch dieser Spruch: Es gibt keine dummen Fragen, sondern nur dumme Antworten.
markus schrieb: > Allerdings gilt auch dieser Spruch: > > Es gibt keine dummen Fragen, sondern nur dumme Antworten. Tut mir leid. Es gibt sie nämlich, die dummen Fragen. Dein Spruch hat seine Berechtigung bei Kindern, aber nicht bei Studenten. An die werden etwas andere Anforderungen gestellt, als an 10-jährige.
:
Bearbeitet durch User
>Dein Spruch hat seine Berechtigung bei Kindern, aber nicht bei >Studenten. An die werden etwas andere Anforderungen gestellt, als an >10-jährige. Der Meinung bin ich nicht. Fragen hilft und vielen Leuten ist in diesem Thread durch die angeregte Diskussion einiges klarer geworden. Ich habe die Erfahrung gemacht, dass sich die meisten Leute vor Fragen scheuen, um sich nicht zu blamieren. Allerdings habe ich noch keinen getroffen, der nach 5 gezielten Fragen mit seinem Latein nicht am Ende gewesen wäre.
markus schrieb: > Der Meinung bin ich nicht. Fragen hilft und vielen Leuten ist in diesem > Thread durch die angeregte Diskussion einiges klarer geworden. Welche Zahnpastatube nehme ich nohmal am Abend? war es die orange oder die blaue? Es gibt sehr wohl dumme Fragen. Nämlich die, bei denen der Fragesteller so überhaupt nicht durchblicken lässt, dass er sich mit der Materie beschäftigt, sondern sich die Welt erklären lassen will. Stichwort lmgtfy - da fühlt man sich als Befragter auch irgendwann verschaukelt. Klar: Hier im Forum muss ja keiner Antworten, aber diese Mentalität existiert leider auch im RealLife zur Genüge. Angewand auf das Topic: Von Studierenden würde ich erwarten, dass zumindest eine mögliche Quelle eines C-Buches oder C-FAQ geliefert wird. Klassisch akademisch mit dem Thema auseinandersetzen, um auf einem gewissen Niveau darüber zu diskutieren. Man muss nicht alles wissen, man muss nur wissen, wo es steht, bzw. wie man sich selbst weiterhilft. Grüße, Tobias
> Es gibt sie nämlich, die dummen Fragen. > > Dein Spruch hat seine Berechtigung bei Kindern, aber nicht bei > Studenten. An die werden etwas andere Anforderungen gestellt, als an > 10-jährige. Der Fehler beim Gefragten besteht darin, hinsichtlich des Fragendens a.) vom biologischem Alter auf das geistige Alter zu schließen und b.) anzunehmen dessen geistiger Horizont entspräche einem perfekten Kreis anstatt einer zerklüfteten Küste mit unzähligen Buchten und Halbinseln. > Stichwort > lmgtfy - da fühlt man sich als Befragter auch irgendwann verschaukelt. > Klar: Hier im Forum muss ja keiner Antworten, aber diese Mentalität > existiert leider auch im RealLife zur Genüge. Auch das sind keine dumme Fragen. Ganz im Gegenteil, der Fragende ist clever. Er wählt den geringsten Widerstand und lässt den Gefragten für sich arbeiten. Dabei bemerkt der Gefragte gar nicht nicht, dass er sich ausnutzen lässt und fühlt sich vermeintlich dem Fragenden auch noch überlegen.
Karl Heinz schrieb: >> was macht der Operator ++ in seiner Definition? > Für einen Studenten ist so eine Frage nicht akzeptabel. Äh ja, dann zeige mir mal die Definition vom Operator++, wo kann ich den Quellcode vom Operator++ sehen. Was ++ macht das ist schon klar. Nur war oder ist :-) mir nicht ganz klar, wie der Operator++ mit der übergebenen Variablen hantiert. Besser ausgedrückt: int a[10]={0}; int *c=a; (*c)++=7; Da (*c) den Inhalt meint (Dereferenzierung) und der Operator++ den Inhalt um eins erhöht, könnte man ja annehmen das links dann wieder das hochgezählte (*c)=7; zurückgeben vom Operator++ steht. Und der weise ich dann 7 zu. Oder sehe ich das falsch??? Also muss ja der Operator an der Sache schuld sein. Wenn ich den Operator++ überladen würde (ja ich weiß C++) dann kann ich auch einen Operator++ schreiben der (*c)++=7; zulässt. Ein schönes Wochenende :-)
das erklärt dan wohl auch warum Lazarus/Pascal ihre Daseinsbeerechtigung haben.. Und warum auch heute noch viele, die Geld verdienen wollen auf Pascal setzen auch bei Mikrocontrollern. C ist ohne frage nicht schlecht und hat ebenfalls seine Berechtigung aber nachdem ich immer wieder um C herumgeschlichen bin, ist meine Entscheidung gefallen das ich bei Pascal bleibe. Die Beispiele und einfache Grundprobleme in C zu lösen ist durchaus machbar..wird es aber komplexer bereut man sehr oft überhaupt mit dem Zrkus angefangen zu haben, während ich in Pascal bereits alle Software für den Controller fertig habe und mich an die Steuersoftware für den PC machen kann. Ob es auch Professionelle gibt, die mit Bascom arbeiten? Auszuschließen ist das mit SICHERHEIT nicht. Habe aber selbst mit Bascom nur sehr kurze Versuche gemacht und k.a. wo die Lizenz eigentlich abgeblieben ist...auch keine Ahnung was mich damals genervt hatte..aber bei Pascal läuft bis heute alles rund. Bascom wird sich sicher, genauso wie Pascal weiterentwickelt haben, vermutlich hat BAScom mittlerweile auch beliebig lange Strings wie PAscal auch. Soll bei Bashing werden, wie gesagt...echte Freaks bekommen mit C sicher super Resultate..aber 90% der C Schreiber scheitern sicher schnell wenn es etwas außerhalb der Grundlagen ist. Für einen Großteil währe daher PAscal sicher eigentlich das bessere..C hat natürlich den riesen Vorteil eienr etwa 5x so großen Community (grob geschätzt ) :-) Leider benötigt man aber eben auch öfter deren Support durch die komplexität. Wobei ich es generell in allen Programmierforen leider sehr ruhig finde, egal ob C oder Pascal für µC
Filosuff schrieb: > Ganz im Gegenteil, der Fragende ist > clever das ist nicht clever, sondern faul. Und wenn man als Gefragter passend reagiert: siehe oben. Egal wie: solange hier jeder sein Halbwissen kundtut, führt die Diskussion über wilde C-Konstrukte eh nicht weiter. Hier hilft nur Doku des Compilers oder eine Version des C-Standards/Definition. Ach ja: Wer so programmiert (mit den Konstrukten ganz oben), der frisst auch kleine Kinder ;) In welcher Hochschule wird sowas vermittelt?
"dass zumindest eine mögliche Quelle eines C-Buches oder C-FAQ geliefert wird. Klassisch akademisch mit dem Thema auseinandersetzen, um au" Hallo??? In welchem Zeitalter bitte leben wir? Wozu gibt es denn Communities/Foren?? Wohl um zu fragen und zu Diskutieren!! ALLES!! kannst Du in Büchern nachlesen..tust es aber selber nicht und Anfängerfragen sind nunmal Anfängermäßiger als von jemandem der täglich programmiert!! Es sind nicht nur Freaks die hier lesen/schreiben sondern auch leute die nach der Arbeit noch an einem kleinen privaten Projekt weiterarbeiten wollen und da fragt man bei einem Problem mal eben schnell!! Um nicht aus einer LED Alarmblinkatrappe z.BB :-) ein Wochenlanges Projekt werden zu lassen weil sich erst EINLESEN muss?!?! Schade diese Mentalität hier.. Wer nicht antworten will soll es lassen, ganz einfach.. ICh finde es sowieso geil, 90% der Threats enden mit benutze die Suchfunktion des Forum oder so ähnlich.. Davon findet man dann zu einem problem 50 solcher Antworten..weil irgendwann mal diese Frage irgendo im Forum beantwortet wurde..schönen dank auch, diesen Threat dann zu finden.. Wenn man schon so neunmalklug ist, kann man auch sagen "Hatten wie schon, benutz mal die Suchfunktion, Stichwort XXYZ? Oder hatten wir hier chonmal =>LINK Nicht jeder liest hier ständig mit und weiß das di Frage gestern beantwortet wurde..und manche Antworten ändern sich mit der Zeit also bleibt die Frage aktuell..wenn vielelicht heute als Vorschalg jemand ein µc anstelle eines NE555 vorschlagen würde..nur z.B:
Frank T. schrieb: > das erklärt dan wohl auch warum Lazarus/Pascal ihre Daseinsbeerechtigung > haben.. Niklaus Wirth würde dir sehr wahrscheinlich nicht zustimmen. Er "erfand" Pascal als Lehrsprache. Und das war auch das letzte Mal, dass ich damitnzu tun hatte: in der Schule. War aber sehr nett damals :) Zum Thema C und diese ewige Spezialisten-Leier "Man muss nur wissen, was man tut" fällt mir nur eine Antwort ein: Heartbleed. q.e.d.
Timo schrieb: > Um nicht aus einer LED Alarmblinkatrappe z.BB :-) ein Wochenlanges > Projekt werden zu lassen weil sich erst EINLESEN muss?!?! Du kannst es auch sein lassen und an die frische Luft gehen. Zwingt dich ja keiner.
Frank T. schrieb: > Die Beispiele und einfache Grundprobleme in C zu lösen ist durchaus > machbar..wird es aber komplexer bereut man sehr oft überhaupt mit dem > Zrkus angefangen zu haben, während ich in Pascal bereits alle Software > für den Controller fertig habe und mich an die Steuersoftware für den PC > machen kann. >
1 | curr_chr_size2_ptr=&alpha_chr[chr_curr]; |
2 | curr_chr_size2=*curr_chr_size2_ptr; |
3 | lvl2= ((const char*) |
4 | (
|
5 | (*curr_chr_size2_ptr) |
6 | |
|
7 | (
|
8 | ((unsigned int)(*(curr_chr_size2_ptr+1))) << 8) |
9 | )
|
10 | );
|
11 | curr_chr_size2=*((const char*)(lvl2)); |
Mach sowas mal in PASCAL.
1 | return; |
2 | l_addr_decode: |
3 | addr=*(t1+1);addr << =8; |
4 | addr|=*(t1);t1=(((const char*)(addr))); |
5 | if(goto_dst==0)goto l_dest0;else goto l_dest1; |
6 | }
|
oder als Perverser, spar dir einen Funktionsaufruf, von 2 unterschiedlichen Punkten aus aufrufen, und vorher goto_dst setzen. Ergebniss: 25 Byte weniger. Ist doch toll? Und damit es auch noch unsauber sein soll mit Fleiss, hinter dem return (ohne Rueckgabewert) ablegen.
Was sich ausgewiesene Laien immer so über C und dessen vermeintliche Anwendung, Grenzen und Komplexität zusammenreimen ist schon zum schmunzeln. - Pascal ist besser weil es irgendein Paket gibt welches schon libs für ein paar AVRs mitbringt. - C ist nur für einfache Sachen oder sonst für Freaks. - Mit Pascal und BASCOM kann man produktiv auf Controller entwickeln und es wird auch flächendeckend gemacht um Geld zu verdienen. Reinste Satire hier.
Lesen bildet. Nimm dir K&R "The C Programming Language". Das ist die erste Definition von C. C Code schrieb: > Äh ja, dann zeige mir mal die Definition vom Operator++, Kapitel 2.8 und 7.2 > wo kann ich den > Quellcode vom Operator++ sehen. Dir fehlen Grundlagen zum Thema Programmieren. Du verwechselst die Definition einer Sprache und die Umsetzung für eine spezielle Maschine. > Was ++ macht das ist schon klar. Den Eindruck habe ich nicht. > Nur war > oder ist :-) mir nicht ganz klar, wie der Operator++ mit der übergebenen > Variablen hantiert. Zurück auf Start. Lesen. Es sind nur wenige Seiten.
So danke, ich habe mir jetzt die INTERNATIONAL STANDARD ISO/IEC 9899 Second edition 1999-12-01 Programming languages — C und die INTERNATIONAL STANDARD ISO/IEC 14882 Second edition 2003-10-15 Programming languages — C++ Langages de programmation — C++ geladen :-)
Frag ruhig konkret, wenn etwas unklar ist. Die Normen sind schwierig zu lesen, wenn man nicht bereits das Grundprinzip des Aufbaus und diverse Begrifflichkeiten kennt.
Vielen Dank, das mache ich gerne :-) bin gerade bei 6.5 Expressions, und da habe ich auch schon was interessantes gefunden :-) 70) This paragraph renders undefined statement expressions such as i = ++i + 1; a[i++] = i; while allowing i = i + 1; a[i] = i; ©ISO/IEC ISO/IEC 9899:1999 (E)
Was hat das damit zu tun welche Sprache ursprünglich mal wozu entwickelt wurde?!?! Darauf kann doch dennoch eine neue basieren. Das Pascal von damals hat mit Freepascal so gar nicht mehr gemein! Es basiert lediglich auf dieser Einfachheit und ist zu allem Überfluss sogar noch kompatibel zum alten Pascal! Wir reden hier nicht von Pascal 7.0 oder sowas :-) Aber wie gesagt, sollte auch kein bashing werden, wenn ich mir den Kommentar von Cyblord ansehe, bin ich hier raus, der versteht ja nicht mal diese einfach Auflistung ohne daraus ne nummer zu machen. Man merkt auch sehr schön am Umgangston hier und in Pcscalforen wo der Unterschied bei der Mentalität liegt... Niemand dort zerreißt C, es wird größtenteils sachlich argumentiert. Naja, viel Spaß noch
Carmen schrieb: > Man merkt auch sehr schön am Umgangston hier und in Pcscalforen wo der > Unterschied bei der Mentalität liegt... Bei Pascal ist halt alles besser, sogar die Foren. Es wird immer lustiger. > Niemand dort zerreißt C, es wird größtenteils sachlich argumentiert. Sachliche Argumentation findet ihre Grenzen, wenn jemand daher kommt und irgendwas von "professionellem Umfeld" im Bezug auf Pascal oder gar BASCOM faselt. Was will man da sachlich dagegen argumentieren? Das ist humbug. In Pascal-Foren werden hauptsächlich Hobbyisten sein. Die Oraklen dann munter über irgendwelche Dinge von denen sie nichts verstehen. Wie hier diverse User über C. Und alle finden das eine tolle Diskussion. Sozusagen Spass durch Unwissenheit. Aber wenn man täglich in C entwickelt hält man so ein grundfalsches Geblubber halt fast nicht aus. Hat ja nicht jeder so ein dickes Fell wie der KHB. gruß cyblord
tja, komisch das ich genug kenne die ihr Geld mit Pascal verdienen :-) Ich selber übrigens auch ;-) Und sicher wird es das auch im Bascom Umfeld geben. Vielleicht solltest Du einfach mal Deine Ansichten überprüfen. Und den Umgangston von hier zu übertreffen ist nicht sonderlich schwer, meinst Du nicht? Anstatt es einfach in Frage zu stellen könntest Du natürlich einfach mal z.B. ins LAzarus Forum schaun..aber vermtulich hst Du dazu einfach gar keine Lust...und blidest Dir weiter Deine Meinung ohne jegliche Grundlage. Es gibt ne menge Professioneller Systeme z.B. auch E-lab PAscal Basis Vielelicht nutzt Du selber eine davon und weißt es nicht mal. Denk mal drüber nach. Ada sagt Dir dann sicher auch nichts...und warum das existiert..achne..das ist ja Pascalähnlich, also ne Lehrsprache..oder nein doch nicht....
Hier hätte ich einen schönen Thread für alle die meinen in Ihrem Studium alles gelernt zu haben und nicht fragen zu müssen: Beitrag "Verstand klemmt"
Upps, das war der falsche Link. Hier noch mal ein Versuch: Beitrag "Eine Frage, die 90% aller E-Techniker nicht oder falsch beantwortet"
sehr Interesasant ist auch das hier http://www.dwheeler.com/steelman/steeltab.htm Dennoch behaupte ich wie gesagt nicht, das C schelcht ist. Ich komem damit aber halt gar nicht klar und würde mich nicht truaen, meien Projekte darauf umzuschreiben, sicher gibt es hier genug die das spielend könnten, aber bevor ein mittelmäßig schelchter Programmierer wie ich ein Gerät konstruiert das völlig misst ist, schreibe ich es lieber in Pascal und habe keinerlei Reklamationen wegen irgendwelcher Softwarefehler.
Karl Heinz schrieb: > Für einen Studenten ist so eine Frage nicht akzeptabel. Ach so, ein Student, der sich zum allerersten Mal mit einer Sache beschäftigt, der muss also bereits wissen wie es richtig geht? Weil er Student ist? Seltsame Sichtweise, das. > Kleiner Tip: > bei so manchen Fragen hier im Forum ist es für den Fragesteller > wesentlich besser, wenn er nicht erwähnt, dass er die Sache für sein > Studium braucht. Kleiner Tip: Mal versuchen, sich daran zu erinnern, wieviel man selbst als Erstsemester über das korrekte Programmieren wusste. Ich bin mir ziemlich sicher, dass dies bei den meisten anderen nicht viel besser aussah als beim Threadersteller.
:
Bearbeitet durch User
Mark Brandis schrieb: > Ich bin mir > ziemlich sicher, dass dies bei den meisten anderen nicht viel besser > aussah als beim Threadersteller. Nee, glaube ich nicht. Die meisten hier, die sich über Anfänger aufregen, sind offensichtlich schon mit einem ins Hirn implantierten K&R auf die Welt gekommen. Wozu lernen, Erfahrungen sammeln, auch andere Leute fragen? Man weiß das eben. Und wer Fragen stellt, bevor er alles weiß, muß damit leben, daß er niedergemacht wird... Klingt widersprüchlich, ist aber so.
Mark Brandis schrieb: > Ach so, ein Student, der sich zum allerersten Mal mit einer Sache > beschäftigt, der muss also bereits wissen wie es richtig geht? Weil er > Student ist? Er beschäftig sich ja nicht zum allerersten Mal damit. C Code schrieb: > Entschuldigung :-) weil ich gerade an der Hochschule > C-Programmieren lerne und das eine Aufgabe war. Den Übungsaufgaben geht normalerweise eine Vorlesung voran, in der das Wissen vermittelt wird, um die Übungsaufgaben zu lösen. Es würde mich schwer wundern, dass in der Vorlesung niemals der ++-Operator behandelt worden wäre. Selbst wenn der Student die Vorlesung krankheitshalber nicht besuchen konnte, gibt es i.Allg. ein Skript, wo man das alles nachlesen kann. Selbst wenn es kein Skript gibt, ist es einem erwachsenen Menschen mit Hochschulreife zuzumuten, dass er sich in der Bibliothek die entsprechende Literatur besorgt. Selbst wenn in der Bibliothek gerade sämtliche C-Bücher verliehen sind, gibt es immer noch Buchhandlungen, C-Tutorials im Internet usw. Die Wirkungsweise des ++-Operators in C ist so elementar, und das Wissen darüber so weit verbreitet, dass es einen wirklich wundern muss, warum dafür extra eine Frage in einem Forum formuliert werden muss. Karl Heinz hat hier auch keinen C-Anfänger dafür kritisiert, dass er C-Anfänger ist. Etwas Verwunderung ist aber IMHO voll gerechtfertigt, wenn sich hier ein LEBENSanfänger plötzlich als Student entpuppt :) vcd schrieb: > Die meisten hier, die sich über Anfänger aufregen, sind offensichtlich > schon mit einem ins Hirn implantierten K&R auf die Welt gekommen.
:
Bearbeitet durch Moderator
"Selbst wenn der Student die Vorlesung krankheitshalber nicht besuchen konnte, gibt es i.Allg. ein Skript, wo man das alles nachlesen kann." Oder in einem Forum nachfragt....
Carmen schrieb: > Oder in einem Forum nachfragt.... Was meinst du wie überfüllt dieses Forum wäre, wenn hier alles nachgefragt würde, was schon längst an hunderttausend anderern Stellen beantwortet wurde? Typische Threads würden dann so aussehen:
1 | Frager: Was genau tut der "+"-Operator in C? |
2 | |
3 | Antworter: Er liefert die Summe von zwei Zahlen. |
4 | |
5 | Frager: Hmm, das verstehe ich nicht ganz. Kannst du ein Beispiel dazu |
6 | geben? Was ergibt bspw. 2+3? |
7 | |
8 | Antworter: 5 |
9 | |
10 | Frager: Ok, und was ist 4+1? |
11 | |
12 | Antworter: Auch 5 |
13 | |
14 | Frager: Ah, ich glaube ich hab's kapiert: Es kommt immer 5 heraus? |
15 | |
16 | Antworter: Nein, natürlich nicht. Gegenbeispiel: 3+4=7 |
17 | |
18 | Frager: Mist, dann hab ich's doch noch nicht kapiert. Gibt es dafür |
19 | eine allgemeine Regel? |
20 | |
21 | Antworter: @$&%# |
22 | |
23 | Frager: Das verstehe ich jetzt nicht, was bedeutet das @? |
Ok, das war jetzt etwas überspitzt. Aber mitunter verlaufen Threads tatsächlich in dieser Richtung.
Yalu X. schrieb: >
1 | > Frager: Was genau tut der "+"-Operator in C? |
2 | > |
3 | > Antworter: Er liefert die Summe von zwei Zahlen. |
4 | > |
5 | > Frager: Hmm, das verstehe ich nicht ganz. Kannst du ein Beispiel dazu |
6 | > geben? Was ergibt bspw. 2+3? |
7 | > |
8 | > Antworter: 5 |
9 | > |
10 | > Frager: Ok, und was ist 4+1? |
11 | > |
12 | > Antworter: Auch 5 |
13 | > |
14 | > Frager: Ah, ich glaube ich hab's kapiert: Es kommt immer 5 heraus? |
15 | > |
16 | > Antworter: Nein, natürlich nicht. Gegenbeispiel: 3+4=7 |
17 | > |
18 | > Frager: Mist, dann hab ich's doch noch nicht kapiert. Gibt es dafür |
19 | > eine allgemeine Regel? |
20 | > |
21 | > Antworter: @$&%# |
22 | > |
23 | > Frager: Das verstehe ich jetzt nicht, was bedeutet das @? |
24 | > |
Sieht aus wie ein Auszug aus dem freundlichen Pascal-Forum :-p Manche glauben bestimmt so sähe eine fruchbare Diskussion aus.
cyblord ---- schrieb: > Manche glauben bestimmt so sähe eine fruchbare Diskussion aus. Meinst du jetzt einen fruchtbare oder eine furchtbare?
Yalu X. schrieb: > Aber mitunter verlaufen Threads tatsächlich in dieser Richtung. Wie du schon schreibst. Mitunter. Kann man das deshalb auf alle Neulinge projizieren? Manchmal muß eben nur der Knoten platzen. Und der Fragesteller hat zwar nach dem "++" gefragt, aber aus seiner Fragestellung vorher war zu sehen, daß er die Konstrukte meinte, die er darüber aufgelistet hatte. Und das ist nicht nur ein simples "++". Das sieht man ja auch daran, daß sich nicht mal die "Fachleute" darüber einig waren. Schon diese Tatsache zeigt ja, daß die Fragestellung durchaus berechtigt war, oder?
vcd schrieb: > Das sieht man ja auch daran, daß > sich nicht mal die "Fachleute" darüber einig waren. Doch, die waren sich einig. Nur die Neulinge haben sich gegenseitig verwirrt, weil sie entweder ihr Wissen nicht einschätzen können, oder halt trotz Nichtwissens mal was sagen wollten.
vcd schrieb: > zeigt ja, daß die Fragestellung durchaus berechtigt war, oder? Im Prinzip schon. Nur falsch adressiert. Denn die explizit aufgeführte Fragestellung >> was macht der Operator ++ in seiner Definition? fragt ja nun exakt nach dem, was man in einer Sprachreferenz findet. Also wär diese die richtige Adresse gewesen.
A. K. schrieb: > vcd schrieb: >> zeigt ja, daß die Fragestellung durchaus berechtigt war, oder? > > Im Prinzip schon. Nur falsch adressiert. Denn die explizit aufgeführte > Fragestellung > >>> was macht der Operator ++ in seiner Definition? > > fragt ja nun exakt nach dem, was man in einer Sprachreferenz findet. > Also wär diese die richtige Adresse gewesen. Das stimmt schon so, deswegen schrieb ich ja auch: vcd schrieb: > Und der Fragesteller hat zwar nach dem "++" gefragt, > aber aus seiner Fragestellung vorher war zu > sehen, daß er die Konstrukte meinte, die er darüber aufgelistet hatte. Manchmal sollte man deswegen vielleicht auch "zwischen den Zeilen lesen", dann wäre ein Großteil dieses Streites vermeidbar gewesen. :-)
"Was meinst du wie überfüllt dieses Forum wäre..:" Und? Hast Du angst, das das Internet orgendwann voll ist? ;-)
Carmen schrieb: > > Und? > Hast Du angst, das das Internet orgendwann voll ist? ;-) Hatten wir nicht letztens die Fragestellung, welche Speicherkapazität man braucht, um das Internet abzuspeichern? ;-)
Tobias K. schrieb: > Ach ja: Wer so programmiert (mit den Konstrukten ganz oben), der frisst > auch kleine Kinder ;) > In welcher Hochschule wird sowas vermittelt? Das ist doch nur Verwirrung für die Studenten. Bei uns im ersten Semester Kurs "Programmieren in C". Als Abschlussprogramm musste man als Gruppenarbeit ein größeres Programm anfertigen (nur Konsole, je nach Programmierfähigkeit so 1500-2000 Codezeilen. Nix großes, hauptsächlich Daten aus Datei einlesen, bearbeiten mit Commandos und wieder rausschreiben). Natürlich ist sowas als Beweis für die Programmierfähigkeiten der Studenten nicht genug. Also haben die Professoren am Ende vom Semester noch eine Klausur gemacht mit genau solchen Fragen: - Sehen sie sich folgendes Programmstück an. Was ist die Ausgabe? ... int i=0; for(++i = 0;i<10;i++) { printf("%d",++i); i++++i; } printf("%d"); ... Und ähnliche Codestücke. Also Brainf*** auf höchstem Niveau.
Carmen schrieb: > "Was meinst du wie überfüllt dieses Forum wäre..:" > > Und? > Hast Du angst, das das Internet orgendwann voll ist? ;-) Das nicht, aber die Qualität dieses Forums würde darunter leiden. Das Forum ist ja prinzipiell dazu da, Fragestellungen zum Thema Mikrocontroller und verwandten Gebieten zu diskutieren. Die Teilnehmer haben Spaß an diesen Diskussionen, weil die jeweiligen Fragestellungen für sie in irgendeiner Weise interessant sind. Natürlich gibt es immer auch Fragestellungen, wo die Antwort klar und eindeutig ist, so dass nichts diskutiert werden muss. Auch solche Themen sind in Ordnung, wenn die Frage nicht trivial ist, zumal die Antworten oft nicht nur für den Fragesteller, sondern auch für stille Mitleser von Nutzen sind. Von Trivialfragen und den zugehörigen Antworten haben aber nur diejenigen etwas, die zu faul sind, ein Buch aufzuschlagen oder eine Suchmaschine zu bedienen. Für den ganzen Rest (der hoffentlich die Mehrheit darstellt) ist das aber nur Rauschen, das die interessanteren Themen überlagert und erst einmal herausgefiltert werden muss. Nimmt der Anteil dieser Trivialfragen zu, sinkt gleichzeitig der Aufwand, an die interessanten Themen heranzukommen, was längerfristig dazu führen wird, dass diejenigen, die das Forum wirklich mit "Fleisch" füllen, die Lust verlieren und das Forum verlassen. Die Folge ist, dass der Anteil interessanter Diskussionen weiter sinkt und schwierige Fragen nicht mehr oder gar falsch beantwortet werden. Dieser Prozess setzt sich so lange fort, bis das Forum völlig wertlos ist.
Steigt oder wird die Qualität der Forum durch unser Getexte völlig vernab des eigentlichen Thema (Was leider bei 80% der Beiträge passiert) Ist es nicht besser, auch eifnache Fragen eifnach zu ebantworten, als mit Lies doch, benutze google finde es selber heruas??! ICh meine, genau DAS verlechtert das Forum weil man sich durch einen Wust solcher völlig nutzlosen Antworten wühlen muss
Carmen schrieb: > Ist es nicht besser, auch eifnache Fragen eifnach zu ebantworten, als > mit Lies doch, benutze google finde es selber heruas??! Nein. Die Idee des Forums ist es Hilfe zur Selbst-Hilfe zu liefern. Hilfe zur Selbst-Hilfe heißt nicht, eine fertige Antwort zu präsentieren, sondern einen Weg zur Antwort zur Zeigen. Und genau dieses Zeigen ist dann als "Lies ein C-Buch" oder ähnlches formuliert. Aber die meisten wollen einfach nur eine fertige Antwort, ohne zu verstehen wie man da hinkommt. Entsprechend giftig fallen da immer wieder die Antworten aus, meiner Meinung nach zu recht. Karl Heinz schrieb: > Tut mir leid. > Es gibt sie nämlich, die dummen Fragen. Dem Stimme ich voll und ganz zu. In die Kategorie "dumme Frage" fallen (für mich) sachen, wie: "Mein Programm geht nicht, warum geht das nicht?" <-- dazu gibt es keine weiteren angaben "was" nicht geht (kann es nicht compiliert werde, stürzt es ab, usw.) und code gibt es natürlich auch nicht, und wenn es mal code gibt, dann ist der code falsch abgetippt, und/oder es ist ein code-snippet der die eigentliche Fehlerursache gar nicht enthält. Sowas ist eine dumme Frage! Oder wie würdet ihr das nennen? "Warum geht mein PC nicht?" <-- ohne weitere angaben ein eben so gutes Beispiel für eine dumme Frage! Anders gesagt: Eine "dumme Frage" ist eine Frage, auf die nicht geantwortet werden kann, aufgrund fehlender Informationen. Die Anzahl an Möglichkeiten, warum der PC "nicht geht", geht schlicht gegen unendlich. Angefangen vom Netzstecker der nicht eingesteckt wurde bis hin zu irgendeinem abgerauchten Kondensator auf dem Mainboard und andere Dingen.
> Hilfe zur Selbst-Hilfe heißt nicht, eine fertige Antwort zu > präsentieren, sondern einen Weg zur Antwort zur Zeigen. Und genau dieses > Zeigen ist dann als "Lies ein C-Buch" oder ähnlches formuliert. Aber die > meisten wollen einfach nur eine fertige Antwort, ohne zu verstehen wie > man da hinkommt. genau so ist es, mit dem Lesen eines C-Buches wäre die Frage des TO beantwortet gewesen. Offenbar will der TO Geld sparen. > Also haben die > Professoren am Ende vom Semester noch eine Klausur gemacht mit genau > solchen Fragen: > > - Sehen sie sich folgendes Programmstück an. Was ist die Ausgabe? > ... > int i=0; > for(++i = 0;i<10;i++) { > printf("%d",++i); > i++++i; > } > printf("%d"); > ... > > Und ähnliche Codestücke. Also Brainf*** auf höchstem Niveau. das sind gequälte Aufgaben ohne wirklichen Sinn mit dem einzigen Ziel Studies auszusieben - derlei Unsinn kannst Du in so ziemlich jeder Sprache fabrizieren. Eher ein Beispiel für schlechten Programmierstil. Mit solchen Beispielen kann man eine gute Sprache auch vollständig ruinieren bzw. madig machen. Schönen Gruß an Deine Profs. Sinn und Zweck einer Programmiersprache ist aber immer das Programmieren zu vereinfachen und nicht zu verkomplizieren. Und wer bei Pascal oder Bascom bleiben will, kann das ruhig auch machen. Solche Konstrukte wie das Obige gibt es in der Praxis so nicht bzw. sind einfach nicht notwendig. Insofern sollte man sich nicht abschrecken lassen vom bösen C.
C Code schrieb: > Äh ja, dann zeige mir mal die Definition vom Operator++, wo kann ich den > Quellcode vom Operator++ sehen. Und jetzt wirst du auch noch frech. Ich hab dir ja schon einmal geschrieben: Wenn du C lernen willst, dann komm uns nicht mit hanebüchenen akademischen Fragen, weil diese Fragen keinen Sinn haben, da C quasi diktatorisch verfaßt wurde. Wenn in C irgendetwas so ist wie es ist, dann ist es eben so wie es ist und Basta. Es gibt keinen logischen Grund, warum ein ++ nach nem Identifier ein Inkrementieren ist - es ist vielmehr ein Inkrementieren, weil es von K&R eben so als Ordre de Mufti hingeschrieben worden ist. Setze dich hin und lerne C - und zwar selbst und AUSWENDIG. Man braucht nicht wirklich alle in dieser Sprache möglichen Ausdrucksvarianten, man kann auch ganz braven biederen Code schreiben. Die heutigen Compiler können sowas recht gut optimieren, es ist deshalb kein Performance-nachteil. Und nochwas: Es geht unsereinem massiv auf den Nerv, wenn die Selektion zwischen brauchbaren und unbrauchbaren Absolventen erst in der Probezeit stattfindet, weil ein immer größerer Teil der jungen Dünnbrettbohrer an der Uni nur gelernt hat, wie man sich mit fremden Federn durchschlängelt - und nicht, wie man irgendetwas wirklich selber lernt um es dann auch selber zu können. W.S.
Mark Brandis schrieb: > Kleiner Tip: Mal versuchen, sich daran zu erinnern, wieviel man selbst > als Erstsemester über das korrekte Programmieren wusste. Ich bin mir > ziemlich sicher, dass dies bei den meisten anderen nicht viel besser > aussah als beim Threadersteller. O doch. Bei unsereinem sah das so aus, daß man eine Vorlesung gehört hat und sich anschließend aus eigener Kraft (jaja durch LESEN) in die Lage versetzt hat, selbst zu programmieren und dabei auch noch richtige Resultate zu erzielen. Da war kein Abgucken, Abschreiben usw. dabei. Studieren heiß sich SELBST zu bemühen. W.S.
W.S. schrieb: > Da war kein Abgucken, Abschreiben usw. dabei. > Studieren heiß sich SELBST zu bemühen. Mangelnde Gelegenheit kann auch zur Ehre gereichen. ;-) Das Internet-Zeitalter ändert die Sitten
W.S. schrieb: > Bei unsereinem sah das so aus, daß man eine Vorlesung gehört hat[..] Ach wie schön ist es doch, wenn so ein Goldkind aus seinem früheren Leben erzählt. Und er hat sich ALLES selbst beigebracht und NIE jemanden anderen um Rat oder Hilfe gebeten. Da könnte man direkt neidisch werden, daß es ihm so leicht fällt, etwas zu lernen. Aber daß es vielleicht auch Leute gibt, denen diese Gabe der Leichtigkeit nicht zugefallen ist, kommt ihm gar nicht in den Sinn. Ergo: Beim Programmieren vielleicht eine Leuchte, aber menschlich ein totaler Tiefflieger. Glückwunsch!
"Offenbar will der TO Geld sparen." au man...und was ist s falsch daran?!?
Kali T. schrieb: > "Offenbar will der TO Geld sparen." > au man...und was ist s falsch daran?!? Grundsätzlich erstmal nichts. Man darf aber nicht am falschen Ende sparen. Ein Studium kostet mal grob geschätzt 40k€. Und wenn man C programmieren lernen will, ist das das Buch das sich richtig lohnt. Gibt es auch schon gebraucht ab 15€.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.