timecmp kann kein

02/09/2008 - 23:02 von Oliver Maier | Report spam
Hallo,

auf meinem System ist in /usr/include/sys/time.h das Makro timecmp wie
folgt definiert:

|# define timercmp(a, b, CMP) \
| (((a)->tv_sec == (b)->tv_sec) ? \
| ((a)->tv_usec CMP (b)->tv_usec) : \
| ((a)->tv_sec CMP (b)->tv_sec))

um

| struct timeval
| {
| __time_t tv_sec; /* Seconds. */
| __suseconds_t tv_usec; /* Microseconds. */
| };

zu vergleichen.

Jetzt steht da aber noch dieser Kommentar dabei:

| NOTE: `timercmp' does not work for >= or <=.

Wieso funktioniert das nicht mit >= ? Ich sehe da keine Unterschied
zu != oder ==.

Oliver
 

Lesen sie die antworten

#1 Andreas Burmester
03/09/2008 - 06:12 | Warnen spam
Oliver Maier writes:

auf meinem System ist in /usr/include/sys/time.h das Makro timecmp wie
folgt definiert:

|# define timercmp(a, b, CMP) \
| (((a)->tv_sec == (b)->tv_sec) ? \
| ((a)->tv_usec CMP (b)->tv_usec) : \
| ((a)->tv_sec CMP (b)->tv_sec))

um

| struct timeval
| {
| __time_t tv_sec; /* Seconds. */
| __suseconds_t tv_usec; /* Microseconds. */
| };

zu vergleichen.

Jetzt steht da aber noch dieser Kommentar dabei:

| NOTE: `timercmp' does not work for >= or <=.

Wieso funktioniert das nicht mit >= ? Ich sehe da keine Unterschied
zu != oder ==.



Das, was bei Dir `__time_t' und `__suseconds_t' heissen, sind laut
SUSV2 vorzeichenbehaftete Ganzzahltypen (die dort allerdings `time_t'
und `suseconds_t' genannt werden). Nicht einzusehen, warum sich Werte
dieser Typen nicht mit relationalen Operatoren verknuepfen lassen
sollten.

Anders bei Zeigern - die lassen sich zwar paarweise immer auf
(Un-)Gleichheit testen, relationale Operatoren liefern aber nur dann
ein definiertes Ergebnis, falls sich die Zeiger auf's selbe Objekt
beziehen. Siehe 6.5.8 und 6.5.9 fuer Details.

Geht's bei Dir darum? Was sind `__time_t' und `__suseconds_t'?

Scheint mir aber ziemlich unwahrscheinlich und waere reichlich kurios,
wenn das Zeigertypen waeren, die "NOTE" ist vielleicht ein Copy&Paste-
Fehler von einem Compare-Macro, das auch (oder nur) Zeiger erwartet.

Von welchem "System" berichtest Du ueberhaupt?

b.

Ähnliche fragen