Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » struct Fehlermeldung

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
19.01.2014, 22:52 Uhr
green



Hallo,
Ich habe ein Problem mit diesem Programm des Typs struct


C++:
#include <stdio.h>
  
  int main(void)
{
    struct person {
      char name[20];
      char vorname[20];
      int alter;
    } p1, p2;

    struct person pp = { "Krause", "Anton", 44 };

    printf("%s %s ist %d Jahre alt\n", pp.vorname, pp.name, pp.alter);
    
    
    strcpy(p1.name, "Meier");
    strcpy(p1.vorname, "Otto");
    p1.alter = 77;
  
    p2 = p1;
    printf("%s %s ist %d Jahre alt\n", p2.vorname, p2.name, p2.alter);
  
    return 0;
}


Es lässt sich normal ausführen, allerdings kommt nach dem Kompilieren
die Warnung:

Code:
basicstruct.c:16:5: warning: incompatible implicit declaration of built-in function ‘strcpy’ [enabled by default]


Kann mir jemand erklären was diese Meldung bedeutet und wie Ich Sie beseitigen kann?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.01.2014, 08:46 Uhr
ao

(Operator)


In solchen und ähnlichen Fällen ist es ein guter erster Ansatz, den Text der Fehlermeldung bei Google einzugeben. Ich habs mal für dich gemacht, und gleich der erste Treffer liefert die Erklärung und die Lösung (oberste Antwort):

http://stackoverflow.com/questions/977233/warning-incompatible-implicit-declaration-of-built-in-function-xyz
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
20.01.2014, 11:52 Uhr
green



Danke !
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
21.01.2014, 00:03 Uhr
Hans
Library Walker
(Operator)


Interessant. - Welcher Compiler liefert denn die Fehlermeldung?
Ich hab's mit Open Watcom und gcc (mit -Wall) übersetzt, bekam diese Meldung allerdings nicht.
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
21.01.2014, 08:19 Uhr
ao

(Operator)



Zitat von Hans:
Interessant. - Welcher Compiler liefert denn die Fehlermeldung?



Code:
$ gcc -c stru.c
stru.c: In Funktion »main«:
stru.c:17:5: Warnung: Unverträgliche implizite Deklaration der eingebauten Funktion »strcpy« [standardmäßig aktiviert]

$ gcc --version
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3



Du musst es als C-Quellcode (nicht C++) übersetzen. "Implicit declaration" gibts nur in C, in C++ ist sowas ein Fehler.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
22.01.2014, 00:01 Uhr
Hans
Library Walker
(Operator)


Schon klar, dass ich das als C-File übersetzen muss.
Wäre noch anzumerken, dass Open Watcom eine "Function with no prototype"-Warnung geworfen hat, als er auf strcpy traf, ohne dass <string.h> eingebunden war. Hatte das dann gleich nachgeholt und danach erst mit gcc übersetzt. Aber durch einbinden von <string.h> war die Fehlerquelle ja nicht mehr da, weshalb ich das Problem erst nicht reproduzieren konnte...nbsp;
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: