Gast
#599271
Ist das ein Standard-Makro oder sowas?
|
Anzeige
|
Was bedeutet "__builtin_alloca" ???
Gast
#599271
Ist das ein Standard-Makro oder sowas?
Gast
#599330
Wie der Name schon sagt, ist es eine einebaute Version von alloca. Warum interessiert dich das?
Gast
#599351
ich hab das hier gefunden:
gibts das alloca_ nur für AVR? Kann ich das irgendwie rausnehmen? Bert wrote: > > ich hab das hier gefunden: > >
> > gibts das alloca_ nur für AVR? > > Kann ich das irgendwie rausnehmen? Das kommt jetzt auf den Zusammenhang an. Aber ein
sollte das eigentlich ersetzen können. Wenn alle Stricke reissen, muesste man sich die Funktion in der das eingesetzt wird ansehen und entscheiden ob ein Ersatz mit malloc vernünfitg machbar ist.
Gast
#599367
Keine Ahnung, wozu das gut sein soll. Eigentlich sollte man alloca verwenden. Der Compiler bzw. der Standardheader entscheidet dann, welche Implementation tatsächlich verwendet wird. > gibts das alloca_ nur für AVR? alloca ist eine nicht-Standard-Funktion, die aber sehr weit verbreitet ist. Es funktioniert wie malloc, aber nimmt den Speicher für lokale Variablen (also üblicherweise Stack). > Kann ich das irgendwie rausnehmen? Du könntest es als C99 übersetzen. Dann kannst du den Aufruf ersetzen durch ein Array mit variabler Länge. Aber warum willst du das rausnehmen? alloca() ist mittlerweile (aber noch nicht in einem Release) auch in der avr-libc ,,offiziell'' deklariert. Die Deklaration lautet:
Gast
#604348
Hallo, ich muss das malloc oder alloc irgendwie ersetzen, da mein Fujitsu-Compiler damit nicht klar kommt. Oder ich schreibe ihm die Definition selbst. Wo genau ist malloc mal definiert? Bert wrote: > Hallo, > > ich muss das malloc oder alloc irgendwie ersetzen, da mein > Fujitsu-Compiler damit nicht klar kommt. > > Oder ich schreibe ihm die Definition selbst. Wo genau ist malloc mal > definiert? Im K&R gaabs früher mal eine malloc Implementierung. Ob sie in der jetzt aktuellen AUsgabe immer noch drinnen ist, weiss ich nicht. Wenn du aber so fragen musst, dann vergiss das gleich wieder. Einen malloc schreibt man nicht einfach so zwischen halb 12 und Mittag. Was genau bedeutet: "damit nicht klar kommt"?
Gast
#604469
Ich weis nicht genau ob es daran liegt, aber ich kann es mir denken. Das gehört alles zu einem UDP-Sende-Projekt. Es funktioniert mit dem AVR ohen Probleme, lade ich aber den Code auf einen Fujitsu, so entsteht eine Lücke im Ethernet-Frame (an der stelle der IP-Checksumme, die wird einfach übergangen). Dadurch verfälscht der komplette Frame. Bert wrote: > ich muss das malloc oder alloc irgendwie ersetzen, da mein > Fujitsu-Compiler damit nicht klar kommt. Dann bist du hier im falschen Forum... Wenn dein Fujitsu-Compiler wenigstens Arrays variabler Länge (als lokale Variable) kann, dann kannst du das alloca() dadurch ersetzen. Siehe Rolf Magnus ganz oben, ist ein C99-Fietscher. Wenn er das nicht kann, bleibt dir eigentlich nur noch, das Array mit der größtmöglichen anzunehmenden Größe zu definieren. In meiner K&R Version ist übrigens das Malloc-Beispiel (noch?) drin. Tolle Sache ;) Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|