Zugriff Performance globale Variable vs global struct

Gast #2895913
Lesenswert?
• ▲
▼
Hallo,

eine kurze, vielleicht einfache Frage:
Ist der Zugriff auf auf v1 immer genau so schnell wie auf v2? Wenn ich 
den Assembler code für ARM9 / Cortex M3 anschau, dann scheint das der 
Fall zu sein. Aber gilt das allgemein?
1
typedef struct
2
{
3
  int v1;
4
}test_def;
5

6
test_def test;
7
int v2;
8

9
void main()
10
{
11
  test.v1 = 5;
12
  v2=6;
13
}

Gruß Alex
Gast #2908657
Lesenswert?
• ▲
▼
alex schrieb:
> Ist der Zugriff auf auf v1 immer genau so schnell wie auf v2? Wenn ich
> den Assembler code für ARM9 / Cortex M3 anschau, dann scheint das der
> Fall zu sein. Aber gilt das allgemein?

Ich wage zu behaupten, daß das von der verwendeten CPU und vom 
C-Compiler abhängt.
1
typedef struct
2
{
3
  int8_t x
4
  int32_t y;
5
}test_def;
mit 16 oder 32Bit CPU und
1
#pragma pack
-> Der Compiler müßte y an eine ungerade Adresse in der Struktur legen.
Sofern die CPU überhaupt 16/32Bit-Zugriffe auf ungerade Adressen 
erlaubt, würde der Zugriff auf y mehrere Buszyklen benötigen.
Wenn man einfach nur Variablen anlegt, kann der Compiler diese selber 
auf optimale Adressen legen.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.