Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Nachrichten - Case23

Seiten: [1]
1
Offtopic / Re: Bis wann ist ein OS ein OS?
« am: 02. March 2013, 22:46 »
Vielleicht ist dies zu persönlich, aber wie verdient ihr euer Geld?
FPGA Programmierung. Mein tip: mach Was was dir so sehr Spass macht dass du es sogar umsonst machen würdest. Du wirst es nämlich 50 Jahre lang machen.
2
Lowlevel-Coding / Re: Integer Eingabe mit Tastatur
« am: 11. August 2012, 23:05 »
wie wäre es mit folgendem pseudocode:
int zahl = 0
schleife:
lese zeichen
wenn zeichen eine ziffer dann
zahl = zahl * 10 + ziffer
ansonsten
schleife verlassen
3
@OS_3000
wenn du extern inline verwenden willst brauchst du ein schema ähnlich meinem beispiel oben damit der linker sich nicht beschwert.
4
@OS_3000
static inline muss nicht inlinen, aber durch das static wird es auf jedenfall nicht sichtbar nach aussen
5
die Regeln bezüglich "inline" soweit ich es gerade im kopf habe:
1) niemals inline alleine verwenden, da die Sichtbarkeit (im Objectfile) von Funktionen dann abhängt vom Compiler und vom Optimierungslevel.
2) static inline sagt dem Compiler (genauso wie static alleine) das diese Funktion nicht sichtbar sein soll ausserhalb des generierten Objectfiles. Damit wird diese Funktion entweder geinlined, oder als eigene Funktion generiert, die aber nicht sichtbar ist nach aussen. Nachteil ist das wenn der Compiler in mehreren Objectfiles sich entscheidet die Funktion nicht zu inlinen, die Funktion mehrfach erzeugt wird (pro objectfile bis zu einmal) und dann auch mehrfach im executable ist.
3) extern static sagt dem Compiler dass er die Funktion entweder inlinen soll, oder sie als extern betrachten soll. Wenn man es so organisiert dass in allen C-Dateien als extern inline verwendet wird und in einer einzige als normale Funktion, wird genau in einem Objectfile die Funktion sichtbar sein (immer), und in allen anderen entweder geinlined oder als externe reference.
Beispiel zu 3:
inlineit.h:#ifdef INLINEIT_C
#define INLINEIT_INLINE
#else
#define INLINEIT_INLINE extern inline
#endif

INLINEIT_INLINE foobar() {
...
}
inlineit.c:#define INLINEIT_C
#include "inlineit.h"
anotherfile.c:#include "inlineit.h"

/*use foobar here*/
Seiten: [1]

Einloggen