Groups | Search | Server Info | Login | Register
Groups > de.comp.lang.c > #10585
| From | Stefan Reuther <stefan.news@arcor.de> |
|---|---|
| Newsgroups | de.comp.lang.c |
| Subject | Re: Padding von Strukturen |
| Date | 2024-01-29 18:02 +0100 |
| Message-ID | <up8p75.5k8.1@stefan.msgid.phost.de> (permalink) |
| References | <AABls+L881gAAAIP.A3.flnews@WStation5.stz-e.de> <slrnur7ut6.1vogh.hjp-usenet4@trintignant.hjp.at> <AABlt6WrK-wAAAI9.A3.flnews@WStation5.stz-e.de> |
Am 29.01.2024 um 14:18 schrieb Michael Bäuerle:
> Peter J. Holzer wrote:
>> Prinzipiell könnte der Compiler immer Code erzeugen, der auf jedes Byte
>> einzeln zugreift, und hätte dann keine Alignment-Requirements. Das wäre
>> aber sehr ineffizient und für manche (hardware-nahen) Anwendungen könnte
>> man ihn gar nicht verwenden. Oder er könnte z.B. bei der x86-Architektur
>> (bei der unaligned Zugriffe von der Hardware erledigt werden und daher
>> nur ein bisschen langsamer sind) auf Alignment verzichten.
>
> Mit GCC und gepackten Strukturen:
> ------------------------------------------------------------------------
> #include <stdlib.h>
> #include <stdio.h>
[...]
> Ergibt auf NetBSD/amd64:
> |
> | sizeof (struct foo) : 10
> | sizeof bar : 20
> | bar[1].y : 4
>
> Der Assembler-Code sieht gleich aus, wie zu erwarten war.
> GCC für SPARC müsste da verschiedenen Code erzeugen.
Probier's aus: https://gcc.godbolt.org/z/sP8GGzvza
Ich hab hiermit probiert:
struct x {
int a;
char b;
} __attribute__((packed));
int get(struct x* p)
{
return p->a;
}
Ja, für SPARC (oder RISC-V, ARM-V7, ...) stoppelt der gcc da den int aus
4 Einzel-Byte-Loads zusammen.
Stefan
Back to de.comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar
Padding von Strukturen Michael Bäuerle <michael.baeuerle@stz-e.de> - 2024-01-26 17:51 +0100
Re: Padding von Strukturen Claus Reibenstein <creibens@gmail.com> - 2024-01-26 18:41 +0100
Re: Padding von Strukturen "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2024-01-26 19:36 +0100
Re: Padding von Strukturen Michael Bäuerle <michael.baeuerle@stz-e.de> - 2024-01-29 14:18 +0100
Re: Padding von Strukturen Stefan Reuther <stefan.news@arcor.de> - 2024-01-29 18:02 +0100
Re: Padding von Strukturen Stefan Reuther <stefan.news@arcor.de> - 2024-01-27 11:25 +0100
Re: Padding von Strukturen "Peter J. Holzer" <hjp-usenet4@hjp.at> - 2024-01-27 12:21 +0100
Re: Padding von Strukturen Michael Bäuerle <michael.baeuerle@stz-e.de> - 2024-01-29 14:23 +0100
Re: Padding von Strukturen Bonita Montero <Bonita.Montero@gmail.com> - 2024-01-28 15:45 +0100
Re: Padding von Strukturen Rainer Weikusat <rweikusat@talktalk.net> - 2024-01-30 16:06 +0000
Re: Padding von Strukturen Bonita Montero <Bonita.Montero@gmail.com> - 2024-02-02 08:26 +0100
Re: Padding von Strukturen Helmut Schellong <var@schellong.biz> - 2024-03-03 21:16 +0100
Re: Padding von Strukturen Bonita Montero <Bonita.Montero@gmail.com> - 2024-04-22 09:53 +0200
Re: Padding von Strukturen Helmut Schellong <var@schellong.biz> - 2024-04-23 19:11 +0200
Re: Padding von Strukturen Bonita Montero <Bonita.Montero@gmail.com> - 2024-04-23 19:25 +0200
Re: Padding von Strukturen Helmut Schellong <var@schellong.biz> - 2024-04-23 20:41 +0200
csiph-web