struct referenzieren

OP #2162665
Lesenswert?
• ▲
▼
Hallo zusammen,
ich stehe gerade auf der Leitung. Mein Compiler gibt folgende Warnung 
aus:
1
[warning] parameter `struct time_typ end_period' is not referenced
2
[warning] parameter `struct time_typ start_period' is not referenced

kann mir bitte jemand sagen wie ich das korrekt mache?

File: logger.h
1
void logger_vmd_title(int16 operator_code, int16 total_copies,
2
int08 vmd_status, struct time_typ start_period, 
3
struct time_typ end_period,int08 titlecode_report);

File: logger.c
1
void logger_vmd_title(int16 operator_code, int16 total_copies,
2
int08 vmd_status, struct time_typ start_period, 
3
struct time_typ end_period, int08 titlecode_report)
4
{
5
    int08 buffer[LOGGER_BUFFER_SIZE];
6

7
    // Buffer löschen
8
    logger_clear_buffer(buffer);
9

10
    // Teil 1 des Logeintrag zusammenstellen
11
    // Eintrag Typ
12
    buffer[0] = 0x20;
13
    // Ende der Verkaufsperiode
14
    buffer[1] = end_period.year;
15
    buffer[2] = end_period.month;
16
    buffer[3] = end_period.day;
17
    buffer[4] = end_period.hour;
18
    buffer[5] = end_period.minute;
19
    buffer[6] = end_period.second;
20
    // Operator Code
21
    buffer[8] = operator_code;
22
    operator_code = operator_code >> 8;
23
    buffer[7] = operator_code;
24
    // Start der Verkaufsperiode
25
    buffer[9] = start_period.year;
26
    buffer[10] = start_period.month;
27
    buffer[11] = start_period.day;
28
    buffer[12] = start_period.hour;
29
    buffer[13] = start_period.minute;
30
    buffer[14] = start_period.second;
31
    // Checksum
32
    buffer[15] = byte_checksum_8bit(buffer, 15);
33

34
    // Datensatz im SiteMemory ablegen
35
    sitememory_logger_buffer_in(buffer);
36

37
    // Buffer löschen
38
    logger_clear_buffer(buffer);
39

40
    // Teil 2 des Logeintrag zusammenstellen
41
    // Eintrag Typ
42
    buffer[0] = 0x21;
43
    // Titel Code
44
    buffer[5] = titlecode_report;
45
    // Total Verkaufte Exemplare
46
    buffer[6] = byte_bin_to_bcd(total_copies / 100);
47
    buffer[7] = byte_bin_to_bcd(total_copies % 100);
48
    // VMD Status
49
    buffer[9] = vmd_status;
50
    // Checksum
51
    buffer[15] = byte_checksum_8bit(buffer, 15);
52

53
    // Datensatz im SiteMemory ablegen
54
    sitememory_logger_buffer_in(buffer);
55
}

Aufruf:
1
logger_vmd_title(vpd_operator_name, copies, status, start_vmd_periode, now,vmd_titlecode_report[box_no] );
Gast #2162738
Lesenswert?
• ▲
▼
Ich vermute mal, der Compiler warnt davor, dass die structs komplett 
übergeben werden und dadurch jeweils eine zweite Kopie angelegt werden 
muss. Ist natürlich kein Fehler, kostet aber Performance.

Lösung wäre, statt dessen nur Zeiger auf die structs zu übergeben. Am 
besten const, denn die Strukturen werden nicht gelesen.

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.