Unterprogrammaufruf ohne Klammern
Mittwoch, 23. Mai 2012
 
 

PIC Mikrocontroller Forum  |  PIC Mikrocontroller  |  Programmiersprache C  |  Unterprogrammaufruf ohne Klammern « vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Unterprogrammaufruf ohne Klammern  (Gelesen 680 mal)
 
lobo
Newbie
*
Offline Offline

Beiträge: 13


Profil anzeigen
« am: September 01, 2010, 15:23:05 »

Hallo miteinander
Ich habe festgestellt, dass man mit dem C18 Compiler eine Subroutine auch ohne Klammern "aufrufen" kann. Also foo; anstatt foo();
Nur leider wird sie nicht aufgerufen und der Compiler meldet auch keinen Syntaxfehler. Ist jemandem von euch dieses Problem bereits aufgefallen?

mfg lobo
Gespeichert
Bernd
Globaler Moderator
Hero Member
*****
Offline Offline

Beiträge: 3815



Profil anzeigen
« Antworten #1 am: September 01, 2010, 21:49:34 »

Zitat
Ich habe festgestellt, dass man mit dem C18 Compiler eine Subroutine auch ohne Klammern "aufrufen" kann. Also foo; anstatt foo();

Das geht mit jedem C Compiler, da auch foo ohne Klammern syntaktisch korrektes C ist. Der Identifier foo ist die Adresse der aufzurufenden Funktion, d.h.

Code:
foo;

entspricht z.B.

Code:
0x1234;

wenn die Funktion foo an der Adresse 0x1234 beginnt. Das ist ein gültiges Statement in C, bewirkt aber absolut gar nichts. Die meisten Compiler erzeugen dafür eine Warnung („diagnostic message“) wie „statement with no effect“, müssen es nach dem ANSI-Standard aber nicht. Der C18 ist mit Warnungen generell eher sparsam, produziert manchmal ungerechtfertigte Warnungen und läßt mitunter auch gemäß dem ANSI-Standard illegalen Code zu.

Viele Grüße

Bernd
Gespeichert

Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  

Powered by MySQL Powered by PHP Made for Mozilla (Firefox) Made for Internet Explorer
Seite erstellt in 0.036 Sekunden mit 18 Zugriffen.
 
Top! Top!