Quellcodeanalyse

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo Community,

    bastle derzeit ein bisschen an Navit herum. Ich will die Geschwindigkeit nicht über GPS ausgeben sondern über einen HallEffect bzw. erstmal über eine von mir Festgelegte Zahl. Wo ist denn der "printf" Befehl der für die Geschwindigkeitsausgabe zuständig ist? Hat das mit den Zeigern zu tun? Und wie funktionert dieser Fragezeichen-Doppelpunkt Befehl genau?

    Hier ein Auszug für den "Speed":

    [font="-apple-system, BlinkMacSystemFont,"][font="Consolas,"]static char * [/font]

    [font="Consolas,"]format_speed(double speed, char *sep, char *format, int imperial)[/font]

    [font="Consolas,"]{[/font]

    [font="Consolas,"] char *unit="km/h";[/font]

    [font="Consolas,"] if (imperial) {[/font]

    [font="Consolas,"] speed = speed*1000*FEET_PER_METER/FEET_PER_MILE;[/font]

    [font="Consolas,"] unit="mph";[/font]

    [font="Consolas,"] }[/font]

    [font="Consolas,"] if (!format || !strcmp(format,"named"))[/font]

    [font="Consolas,"] return g_strdup_printf((speed < 10) ? "%.1f%s%s":"%.0f%s%s", speed, sep, unit);[/font]

    [font="Consolas,"] else if (!strcmp(format,"value") || !strcmp(format,"unit")) {[/font]

    [font="Consolas,"] if (!strcmp(format,"value"))[/font]

    [font="Consolas,"] return g_strdup_printf((speed < 10) ? "%.1f":"%.0f", speed);[/font]

    [font="Consolas,"] else [/font]

    [font="Consolas,"] return g_strdup(unit);[/font]

    [font="Consolas,"] } [/font]

    [font="Consolas,"] return g_strdup("");[/font]

    [font="Consolas,"]}[/font]


    [font="Consolas,"]static char *[/font]

    [font="Consolas,"]format_float_0(double num)[/font]

    [font="Consolas,"]{[/font]

    [font="Consolas,"] return g_strdup_printf("%.0f", num);[/font]

    [font="Consolas,"]}[/font][/font]


    [font="-apple-system, BlinkMacSystemFont,"][font="Consolas,"]Über alle Art Hilfe wäre ich sehr dankbar.[/font][/font]


    [font="-apple-system, BlinkMacSystemFont,"][font="Consolas,"]Simon[/font][/font]

  • Warum machst du denn dafür schon wieder einen neuen Thread auf? Wurde doch schon alles gezeigt und diskutiert in Hallsensor an RaspberryPi/Navit.

    Und wenn du C schreiben willst, musst du C lernen. Der Fragezeichen-Operator ist ein Ternaerer Operator, der im Grunde nur ein if/else darstellt. Das steht auch in jedem C Buch.

    <condition> ? <when-true> : <when-false>

    ist quasi
    if(<condition>)
    {
    <when-true>;
    } else {
    <when-false>;
    }

    Allerdings kann man es innerhalb von Ausdrücken verwenden, also

    foo(etwas ? dieses : jenes)

    statt

    if(etwas)
    {
    foo(dieses);
    } else {
    foo(jenes);
    }

    schreiben zu müssen. Und offensichtlich benutzt Navit die glib. Dazu gibt es massig Dokumentation, die musst du dann halt konsultieren fuer Dinge wie g_strdup_printf. Kann man einfach mal in Google reinschmeissen, kommt https://developer.gnome.org/glib/stable/gl…-Functions.html raus.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!