Re: Frage zu 64bit-portability-issue curses.c:322
"Sascha 'saigkill' Manns" <[email protected]> Sun, 31 Jan 2010 15:00:18 +0100
| Newsgroups | gmane.linux.suse.programming |
|---|---|
| Organization | openSUSE Marketing Team |
| Message-ID | <[email protected]> |
Am Sonntag, 31. Januar 2010 11:36:01 wrote Manfred Hollstein:
> 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>
Super, damit klappt es. Vielen Dank :-)
--
Sincerely yours
Sascha Manns
openSUSE Community & Support Agent
openSUSE Marketing Team
Blog: http://saigkill.wordpress.com
Web: http://www.open-slx.de (openSUSE Box Support German)
Web: http://www.open-slx.com (openSUSE Box Support English)