Struktur an Funktion in Modul

N

Nerthus

Jungspund
Hallo,

ich möchte über eine Funktion welche in einem externen Modul definiert ist, einige Werte einer übergebenen Struktur prüfen:

Code:
#include <stdio.h>
#include <stdbool.h>

struct settings {

  bool val1;
  bool val2;
  bool val3;

};

void print_s(struct settings);

int main()
{
    struct settings param;
   
    param.val1 = 1;
    param.val2 = 0;
    param.val3 = 1;

    print_s(param);

}

Hier die Funktion welche auf die Kopie der Struktur zugreifen soll.

Code:
#include <stdio.h>

void print_s(struct settings para)
{
  printf("%d \n", para.val1);
  printf("%d \n", para.val2); 
  printf("%d \n", para.val3); 
}


Was mach hier falsch? Mein gcc meldet:
nerthus@ubuntu:~/coding/c/test$ gcc main.c print_s.c
print_s.c:3: warning: "struct settings" declared inside parameter list
print_s.c:3: warning: its scope is only this definition or declaration, which is probably not what you want
print_s.c:4: error: parameter `para' has incomplete type

Zusammengefasst (in einer einzigen Datei) funktionierts problemlos!?!
 
hi

du musst die funktion mit extern deklarieren:
extern void print_s(struct settings);

mfg hazelnoot
 
Hi gute Idee, allerdings hab ich das schon versucht. Klappt leider auch ned, selbes Resultat. AFAIK wird in C alles was nicht static ist impliziet als extern behandelt. Sonst noch einen Vorschlag?
 

Ähnliche Themen

2 Module 1 Header kein Programm

g++ kompilieren schlägt fehl

fußballstatistik auswerten

Xubuntu - AVR32-linux crosscompile sqlite

gcc error bei bool prototyp

Zurück
Oben