Eine Variable durch Funktion erzeugen!!(Neuling)



  • Also ihr müsst wissen das ich mich noch nicht so lange mit der Sprache c beschäftige aber was mich mal interessieren wird ist. Ob man mit einer Funktion eine Deklaration erzeugen könnte. Also wie z.b durch irgendeine schleife oder natürlich anderst. ich stelle mir das so vor: z.b for (x=0; x<=5; x++)
    und darunter: int variable1 und so weiter dann bis variable5.
    Geht so was irgendwie??
    Andere Lösungen werden dankend angenommen
    Gruß ul



  • Nein, das geht nicht. Dafür gibt es Arrays.



  • ja, im prinzip gibt es eine andere lösung. du kannst ein c-programm schreiben, das dir einen c-quellcode erzeugt. dann klappt das auch mit deiner schleife 😉



  • programm-programmierung schrieb:

    dann klappt das auch mit deiner schleife 😉

    Aber nur, wenn in der Zielumgebung ein C-Compiler verfügbar ist, was z.B. unter Windows oder auf Embedded-Systemen nicht unbedingt gegeben ist.



  • Danke euch zusammen für die schnelle antwort. Der Tipp mit den arrays war gut den werd ich mal nachgehen und diese nochmal genau studieren und mit diesen herumprobieren. Jetzt hab ich noch eine kleine zusatzfrage ich hab jetzt schon ziemlich viele Tutorials und Bücher Durchgelesen und einige kleine Programme/Funktionen geschrieben doch wenn ich was deklarier benötige ich das Wort "static" nie. Ich weiß das das nichts ausmacht doch was heißt diese wort. Was hat es für einen Sinn. Danke für eure Antworten.
    Gruß ul



  • ultwobuildc schrieb:

    ...wenn ich was deklarier benötige ich das Wort "static" nie. Ich weiß das das nichts ausmacht doch was heißt diese wort. Was hat es für einen Sinn.

    static vor funktionen oder variablen ausserhalb von funktionen sorgt dafür, dass die so deklarierten objekte nur in der c-datei sichtbar sind, in der sie angelegt wurden. du kannst z.b. zwei static-funktionen gleichen namens in zwei verschiedenen dateien haben, ohne dass sich der linker beschwert.
    static vor variablen innerhalb von funktionen lässt die variablen bestehen, auch wenn die funktion verlassen wird (gegenteil von auto-variablen). normalerweise verlieren lokale variablen ihre gültigkeit, wenn eine funktion verlassen wird.
    🙂



  • Und dann gibts für Optimierungszwecke noch sowas:

    void func ( int array[static 16] );
    

    Das sagt dem Compiler, dass array mindestens 16 Elemente lang ist. Damit kann er tolle Sachen machen, wie z.B. es ignorieren 🤡



  • Tim schrieb:

    void func ( int array[static 16] );
    

    das hab' ich noch nie gesehen. wofür ist das gut?
    🙂



  • Ist das C99?



  • optimier-freak schrieb:

    Tim schrieb:

    void func ( int array[static 16] );
    

    das hab' ich noch nie gesehen. wofür ist das gut?
    🙂

    Data prefetching?

    Bashar schrieb:

    Ist das C99?

    Klar 😃


Anmelden zum Antworten