Re: Frage zu 64bit-portability-issue curses.c:322
Manfred Hollstein <[email protected]> Sun, 31 Jan 2010 11:36:01 +0100
| Newsgroups | gmane.linux.suse.programming |
|---|---|
| Message-ID | <[email protected]> |
On Sun, 31 Jan 2010, 11:20:57 +0100, Marcus Meissner wrote:
> On Sun, Jan 31, 2010 at 10:21:13AM +0100, Sascha 'saigkill' Manns wrote:
> > Am Sonntag, 31. Januar 2010 09:57:14 wrote Marcus Meissner:
> > > On Sat, Jan 30, 2010 at 10:31:54PM +0100, Sascha 'saigkill' Manns
> > wrote:
> > > > Hallo ihr lieben,
> > > >
> > > > wie manchem bekannt ist, bastel ich gerne mal am Compiler, um
> > > > Erfahrungen zu sammeln.
> > > > Jetzt bin ich mal bei netris. Hier kam obige Meldung,.
> > > >
> > > > Die Funktion ist:
> > > > ExtFunc void RefreshScreen(void)
> > > > {
> > > >
> > > > static char timeStr[2][32];
> > > > time_t theTime;
> > > >
> > > > time(&theTime);
> > > > strftime(timeStr[0], 30, "%I:%M %p", localtime(&theTime)); <--Das
> > > >
> > > > ist die Zeile um die es geht.
> > > >
> > > > /* Just in case the local curses library sucks */
> > > > if (strcmp(timeStr[0], timeStr[1]))
> > > > {
> > > >
> > > > move(statusYPos, statusXPos);
> > > > addstr(timeStr[0]);
> > > > strcpy(timeStr[1], timeStr[0]);
> > > >
> > > > }
> > > > move(boardYPos[0] + 1, boardXPos[0] + 2 * boardWidth[0] + 1);
> > > > refresh();
> > > >
> > > > }
> > > > Hat jemand sowas mal gehabt? Bei Google fand ich bisher noch
> > > > nichts, was mich wirklich weiterbrachte...
> > >
> > > Was ist denn die genaue Fehler Meldung?
> > >
> > > Ciao, Marcus
> > E: netris 64bit-portability-issue curses.c:322
>
> No, the message it printed during compilation.
>
> I guess it is "implicit declaration of strcmp()" and a missing
> #include <string.h>
Zum Thema 64bit-portability-issue wuerde ich eher sagen, dass da der
Prototyp fuer "localtime" fehlt; daher nimmt der Compiler an, dass die
Funktion ein "int" zurueckliefert, durch das "%p" Format von der
Funktion "strftime" aber als Pointer - und damit ungleich "int" -
verwendet wird. Das spielt auf dem 32-bit System keine wirkliche Rolle,
aber auf dem 64-bit System dann sehr wohl.
Ich wuerde hier mal ein
#include <time.h>
hizufuegen.
Cheers.
l8er
manfred