mikrocontroller.net

Forum: Compiler & IDEs Einladung zu einem Test in C


Autor: david (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte jeden einladen einen Test über die Programmiersprache C 
mitzumachen. Bei Gefallen können Sie auch an einem Test über die 
Programmierung eingebetteter Systeme teilnehmen.
Es handelt sich hierbei um eine rein universitäre Untersuchung.
Jeder ist hierzu eingeladen. Am Ende der Untersuchung findet eine 
Verlosung eines Amazon-Gutscheines im Wert von 50 Euro statt.

http://tokyo.ixi.informatik.rwth-aachen.de/phpsurv...

Wir danken für Ihre Teilnahme.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein Test der Webfähigkeiten des Testers wäre erstmal nötiger.

Diese Seite verlangt Bildschirme breiter als 1024 Pixel.

Zeilen umbrechen ist doch nun wirklich Urschleim der Webgestaltung.


Peter

Autor: Franz Hennies (lundabor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Haha,

und voller Tippfehler...

Autor: Karl Arsch von der Rennbahn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber trotzdem amüsant. Manchmal könnte man das Gefühl haben, dass es 
sich um einen Psychologietest handelt.

Autor: Zapp (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Frueher wurde sowas noch als Wettbewerb aufgezogen. Ein Compilermanual 
gab's natuerlich nicht. Zu dritt hatten wir nach vier Stunden nicht mal 
einen Dreizeiler, der lief. Die Aufgaben waren viel zu hoch angesetzt. 
Zu einem Compiler ohne manual ist schon ein "Hello world!" eine 
Riesenherausforderung.

Z

Autor: Obelix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Repräsentativ kann das eh nicht werden.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zapp wrote:

> Zu einem Compiler ohne manual ist schon ein "Hello world!" eine
> Riesenherausforderung.

Das hat doch aber alles nichts mit einem Compilermanual zu tun.
Ich habe eine Stelle gefunden, die undefined behaviour war, sonst
ist alles Standard.

Wäre natürlich interessant, hier danach eine Zusammenfassung der
fundamentalen Erkenntnisse zu lesen, die beim Feldversuch heraus
gekommen sind. ;-)

Autor: Patrick Dohmen (oldbug) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da wurde irgendwo der Returntype von malloc gecastet. Mir war so, als 
wäre das unzulässig.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Patrick Dohmen wrote:

> Da wurde irgendwo der Returntype von malloc gecastet. Mir war so, als
> wäre das unzulässig.

Nö, es ist lediglich unnötig, da void * zuweisungskompatibel mit
anderen Zeigern ist.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ihr keine Ahnung habt, dann probiert es doch mal mit einem Compiler 
aus!

Man kann zwar einen void pointer mit anderen pointern initialisieren, 
ABER andersrum geht es natürlich nicht implizit!

Autor: Patrick Dohmen (oldbug) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab's grad in 'nem anderen Kontext nochmal auf comp.lang.c gelesen:

Ein Cast verhindert lediglich die Warnung, wenn das Headerfile nicht 
inkludiert wird.
All the cast does is suppress important error
messages if you forget to include the header, nothing else.

  

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nu, deshalb sag ich ja, unnötig, aber nicht unzulässig.

Wobei er natürlich bei vernünftigem warning level die Warnung nicht
verhindert:
char *sayhi(void)
{
        char *x;

        x = (char *)malloc(42);
        x[0] = 'H';
        x[1] = 'i';
        x[2] = '\0';

        return x;
}
% avr-gcc -Wextra -Wall -c foo.c
foo.c: In function 'sayhi':
foo.c:5: warning: implicit declaration of function 'malloc'
foo.c:5: warning: incompatible implicit declaration of built-in function 'malloc'

OK, die zweite ist GCC, aber die erste sollte jeder vernünftige
Compiler irgendwie bringen.  Ohne dem Cast werden's übrigens nicht
mehr Warnungen. ;-)

Autor: Patrick Dohmen (oldbug) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, tja, keine Ahnung, was dann damit gemeint sein soll!?
Hab's nicht selbst ausprobiert, war ja auch nur so ein "Bauchgefühl" ;-)


Autor: tim (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, wenn so eine Umfrage dazu führt dass einer sein Diplom bekommt, 
dann gute Nacht Deutschland.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was war das?
char *(*(var[10]))(char *string1, char *string2)

Autor: Jörg X. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Gast:
>>Was war das?
>>char *(*(var[10]))(char *string1, char *string2)
 Da habe ich auch mein C-Buch gefragt ;)
alo ich versuchs mal:
ein array "var[10]" (die Klammern sind unnötig, [] geht VOR *) aus:
Pointern auf:
Funktionen die: zwei Pointern auf char als argumente nehmen und
einen pointer auf char zurückgegen,
 so in etwa?!

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, so habe ich das sogar ohne C-Buch (aber mit Nachdenken :)
gedeutet.  Die Namen string1 und string2 haben dabei lediglich
dokumentarischen Charakter.

Autor: Karl Arsch von der Rennbahn (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Was war das?
>> char *(*(var[10]))(char *string1, char *string2)

Die Frage war in etwa: Welcher Datentyp wird initialisiert...?!?! 
Keiner, ';' fehlt. So ein Pech.

Autor: F. Kriewitz (freddy436)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bin mir ja nicht sicher, aber:
>Ziehen Sie die Arbeit des Präprozessors anhand des Terms nach.
>#define abs(x) x>0 ? x : -x
>x = abs(a-(++b));

Feststellen das mindestens b nicht konstant ist (wird ja erhöht)
=> Fehler ausgeben ;)
Ist das beabsichtigt?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
F. Kriewitz wrote:

> Feststellen das mindestens b nicht konstant ist (wird ja erhöht)
> => Fehler ausgeben ;)
> Ist das beabsichtigt?

Nein, du sollst es doch nur ,,präprozessen''.  Der Präprozessor kann
derartiges nicht feststellen, der ist ein dummer Textprozessor.

Übrigens liegst du auch falsch mit dem Fehler (nach dem Compilieren).
Das Verhalten dieses Konstrukts ist sogar vollständig definiert, da
der ternäre Operator eine zwingende Auswertungsreihenfolge hat.  Ob
das Ergebnis allerdings den Intentionen des Benutzers entsprach,
steht auf einem anderen Blatt. ;-)  Daher war es mal Usus, dass man
Präprozessor-Makros (bei denen immer die Gefahr besteht, dass sie
ihr Argument mehr als einmal bewerten) groß schreibt.

Autor: Ale (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nicht Firefox kompatibel :-(, (2 Tabelle !, wie faul kannst du sein ?)

Danke

Autor: Graf van Hirntot (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tip: IETab plugin für den firefox. allerdings hatte ich keine probleme 
mit dem fuchs 2.0.0.2. imho trotzdem ne schwache leistung wenn du kein 
einzelfall bist.

pumpkin

Autor: Winfried (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das sind ja ganz neue Herangehensweisen, die mich beeindrucken. Auf der 
Website ist als Projektziel zu lesen: "welche den Menschen in die 
Qualität unter anderem bei der Herstellung eines Produktes mit 
einbezieht."

Der Mensch wird bei der Herstellung eines Produktes mit einbezogen. 
Klasse! Bisher hab ich bei allem, was ich gebaut und hergestellt habe, 
eher meinen Hund gefragt. Das der Mensch dabei eine Rolle spielt, ist 
mir neu ;-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.