C->C++



  • Hallo!

    Ich muß ein Stück C nach C++ portieren. Was heißt bitte das hier?

    static void
    calctables(n)
    int n;
    {
    ..bla
    }
    

    Was bedeutet "static void" als Typ?
    Warum braucht es keinen Typ für n in "calctables(n)" ?
    Welche Wirkung hat "int n" zwischen calctables(n) und "{" ?

    Danke



  • include schrieb:

    Was bedeutet "static void" als Typ?

    das static bezieht sich auf die Funktion, nicht auf das void. (Zeilenumbrüche sind ganz normale whitespaces in C und C++, also könnte das alles genausogut in einer Zeile stehen.

    Warum braucht es keinen Typ für n in "calctables(n)" ?
    Welche Wirkung hat "int n" zwischen calctables(n) und "{" ?

    Im alten C (ich glaube nannte sich K&R-C oder?) wurden die Typen der Argumente nach der eigentlichen Argumentliste angegeben. Dürfte in C90 und C99 nicht mehr gültig sein. (bin mir da aber nicht sicher)

    zusammen heißt das also:

    static void calctables(int n)
    {
    ...
    }
    


  • static void calctables(int n)
    {
    ...
    }
    

    das static heißt nix anderes, als das die fkt in anderen überstzungseinheiten nicht sichtbar ist. in C++ kann man so etwas auch mit anonymen namensräumen lösen - da gibt es (glaube ich) keinen unterschied zum static:

    namespace /*anonym*/ {
    
    void calctables(int n)
    {
     /*...*/
    }
    
    }//namespace
    

    bb


Anmelden zum Antworten