- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 14

Thema: INLINE nicht eindeutig

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Ich danke Dir shedepe

    Ich hab es mir grad durchgelesen und habe die Komplexität von inline völlig unterschätzt.
    Je nach Code kann das echt problematisch werden für den Compiler. Wenn dann noch Paramter oder schlimmer Rekursionen auftreten, sollte man das lieber dem Compiler überlassen wie und ob er dort optimiert,
    gebe ich Dir bzw. dem Compiler völlig recht.

    Ich hatte nur eine Minifunktion die zwei Werte subtrahiert und wollte den Compiler dazu zwingen den Code als inline zu codieren.
    Das tut er vermutlich sogar selbst wenn ich die entsprechenden Optimierungen setze.

    Dann sind wird von meiner Seite schon durch mit dem Thema INLINE
    und wünsche ein "optimales" Wochenende.
    Siro

  2. #2
    shedepe
    Gast
    Kleiner Tipp zum Thema Optimierung (von Hand):
    Optimierung sollte man erst dann verwenden wenn man sie braucht. Wenn dein Programm das tut was es soll, und das schnell genug dann ist das gut so. In dem fall sollte man lieber auf sauberen, wartbaren Code achten.
    Wenn man aber tatsächlich ein Performance Problem hat, dann sollte man seinen Code profilen. Z.B. mit Callgrind auf Linux. Ein Profiler zeigt dir an wie häuft ein bestimmter Funktionsaufruf gemacht wird.
    Dann kann dort gezielt optimieren. Es bringt z.B. nichts eine Routine die nur einmal oder zwei mal aufgerufen wird zu optimieren. Wenn man hingegen eine Routine die alle 5ms aufgerufen wird, kann man viel mehr rausholen.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    67
    Beiträge
    2.435
    Hallo Siro,
    Zitat Zitat von Siro Beitrag anzeigen
    Ich hatte nur eine Minifunktion die zwei Werte subtrahiert und wollte den Compiler dazu zwingen den Code als inline zu codieren.
    So etwas kann man als Macro realisieren:

    #define add(a,b) (a)+(b);

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  4. #4
    shedepe
    Gast
    Bevor man Macro anstelle von inline Funktionen vorschlägt sollte man sich Gedanken drüber machen ob Macros wirklich Sinn machen.
    Das ist die erste Zusammenfassung die ich auf die Schnelle gefunden habe:

    https://stackoverflow.com/questions/...ocessor-macros

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    67
    Beiträge
    2.435
    Hallo,
    Zitat Zitat von shedepe Beitrag anzeigen
    Bevor man Macro anstelle von inline Funktionen vorschlägt sollte man sich Gedanken drüber machen ob Macros wirklich Sinn machen.
    Wenn man garantiert haben will, dass der Code auch wirklich inline eingefügt wird, geht das nur mit Macros.
    Inline ist, wie vieles in C, nur eine Empfehlung an den Compiler.

    Übrigens wurde inline erst mit C++ eingeführt und wurde dann in C99 übernommen.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  6. #6
    shedepe
    Gast
    @Peter: Das stimmt so nicht. Wenn du dir den Thread noch mal durchliest, dann kann man tatsächlich den Compiler auch zu einem inline zwingen. Nur ist das eben compilerspezifisch und nicht im C/C++ Standard festgelegt.

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Microsoft hat nen ganz interessanten weiterführenden Artikel zum Thema "inline" verfasst.

  8. #8
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    @Peter : Einige Teile kann ich tatsächlich mit einem MACRO realisieren
    ich hatte auch gelesen, dass es erst ab C99 ein "inline" gibt

    @Sisor: Viele Infos, hab ich mir auch grad angeschaut. Danke Dir

    @shedepe: wenn ich das richtig gelesen habe, kann man nur versuchen den Compiler zu zwingen
    z.B. mit __forceinline. entscheiden tut letztendlich aber der Compiler ob er es inline codiert.

    Zumindest hab ich jetzt etwas dazugelernt, dass es sogenannte "Empfehlungen" für den Compiler gibt.
    Das war mir völlig neu.

    Ich Danke Euch nochmal allen für die Anteilnahme

Ähnliche Themen

  1. Bascom Inline-Assembler
    Von Che Guevara im Forum Assembler-Programmierung
    Antworten: 64
    Letzter Beitrag: 07.02.2012, 19:00
  2. "gicr" wird im inline-code für den 644p nicht erka
    Von funkheld im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 08.02.2011, 18:15
  3. Inline Assembler
    Von Che Guevara im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 16
    Letzter Beitrag: 01.02.2010, 19:25
  4. AVR GCC inline Assembler
    Von chientech im Forum Assembler-Programmierung
    Antworten: 1
    Letzter Beitrag: 26.09.2009, 16:39
  5. Inline Asm Rückgabe
    Von FoCus im Forum C - Programmierung (GCC u.a.)
    Antworten: 3
    Letzter Beitrag: 09.02.2006, 10:40

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress