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)