Frage

Ich bin im Gespräch über dieses Beispiel eines Scilab <-> C-Wrapper: http :. //www.scilab.org/doc/intro/node89.html

Der seltsame Teil ist diese:

int intsfoubare(fname) 
 char *fname;
   {
     ....(some code)
   }

Es ist eine Art von Funktion defintion aber ich verstehe wirklich nicht, was der char * fname für auch nur gut ist fname als Parameter für mich keinen Sinn macht.

Ist jemand in der Lage, dies zu erklären?

[fangen an zu weinen] Scilabs Dokumentation im Allgemeinen ist ein negatives Beispiel, aber wenn es um die C-Schnittstelle kommt es noch schlimmer. [Ende weint]

Danke!

War es hilfreich?

Lösung

Ich glaube an, was Sie suchen die K & R-Stil Funktionsdeklaration ist. Es ist ungefähr gleich int intsfoubare(char *fname) { ... }, ermöglicht aber mehr etwas mehr Flexibilität in der Funktion aufrufen. Siehe diesen Beitrag für weitere Details.

Andere Tipps

Ich weiß nicht, Scilab, aber ich weiß, Französisch!

"foubare" klingt wie Französisch für "foobar". Dies könnte einige Entwickler (zufällig?) Ein Fall einer Dummy oder Testfunktion übrig bleiben an Ort und Stelle.

fname klingt wie der Name eines Dateinamens, als Zeichenzeiger übergeben.

Vielleicht wird dies ein wenig helfen.

Wie für die Art und Weise, dass fname verwendet wird: In der älteren, „klassischen“ C Sprachdefinition, war es (in der Tat immer noch) legal nur den Namen eines übergebenen Parameters in den Klammern zu setzen, und seine Art erklärt später . Sie sehen nicht viel von diesem nicht mehr, aber es ist auch nicht völlig falsch. Einfach so tun, die Klammern (char *fname) sagen.

Das ist der alte Stil (vor ANSI / ISO standardisiert C 1989) Definition von Funktionen. Heute mit Prototypen geschrieben steht (auch wenn der alte Stil noch akzeptiert wird) als

int intsfoubare(char *fname)
{
    ....(some code)
}

Für die Aufzeichnung der Scilab Dokumentation zu diesem Thema ist jetzt viel besser!

Siehe auch: http://help.scilab.org/docs/current/ en_US / api_scilab.html

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top