Commit ff4d85fc authored by Sam Lantinga's avatar Sam Lantinga

Better cross-platform macros for printing 32 and 64 bit values

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%403938
parent efc78932
#include "SDL.h" #include "SDL.h"
/* Make sure we have good macros for printing 32 and 64 bit values */
#ifndef PRIu32
#define PRIu32 "u"
#endif
#ifndef PRIu64
#ifdef __WIN32__
#define PRIu64 "I64u"
#else
#define PRIu64 "llu"
#endif
#endif
/* /*
Absolutely basic tests just to see if we get the expected value Absolutely basic tests just to see if we get the expected value
after calling each function. after calling each function.
...@@ -44,72 +56,72 @@ main(int argc, char *argv[]) ...@@ -44,72 +56,72 @@ main(int argc, char *argv[])
val32 = 0; val32 = 0;
tfret = SDL_AtomicTestThenSet32(&val32); tfret = SDL_AtomicTestThenSet32(&val32);
printf("TestThenSet32 tfret=%s val=%d\n", tf(tfret), val32); printf("TestThenSet32 tfret=%s val=%"PRIu32"\n", tf(tfret), val32);
tfret = SDL_AtomicTestThenSet32(&val32); tfret = SDL_AtomicTestThenSet32(&val32);
printf("TestThenSet32 tfret=%s val=%d\n", tf(tfret), val32); printf("TestThenSet32 tfret=%s val=%"PRIu32"\n", tf(tfret), val32);
SDL_AtomicClear32(&val32); SDL_AtomicClear32(&val32);
printf("Clear32 val=%d\n", val32); printf("Clear32 val=%"PRIu32"\n", val32);
ret32 = SDL_AtomicFetchThenIncrement32(&val32); ret32 = SDL_AtomicFetchThenIncrement32(&val32);
printf("FetchThenIncrement32 ret=%d val=%d\n", ret32, val32); printf("FetchThenIncrement32 ret=%"PRIu32" val=%"PRIu32"\n", ret32, val32);
ret32 = SDL_AtomicFetchThenDecrement32(&val32); ret32 = SDL_AtomicFetchThenDecrement32(&val32);
printf("FetchThenDecrement32 ret=%d val=%d\n", ret32, val32); printf("FetchThenDecrement32 ret=%"PRIu32" val=%"PRIu32"\n", ret32, val32);
ret32 = SDL_AtomicFetchThenAdd32(&val32, 10); ret32 = SDL_AtomicFetchThenAdd32(&val32, 10);
printf("FetchThenAdd32 ret=%d val=%d\n", ret32, val32); printf("FetchThenAdd32 ret=%"PRIu32" val=%"PRIu32"\n", ret32, val32);
ret32 = SDL_AtomicFetchThenSubtract32(&val32, 10); ret32 = SDL_AtomicFetchThenSubtract32(&val32, 10);
printf("FetchThenSubtract32 ret=%d val=%d\n", ret32, val32); printf("FetchThenSubtract32 ret=%"PRIu32" val=%"PRIu32"\n", ret32, val32);
ret32 = SDL_AtomicIncrementThenFetch32(&val32); ret32 = SDL_AtomicIncrementThenFetch32(&val32);
printf("IncrementThenFetch32 ret=%d val=%d\n", ret32, val32); printf("IncrementThenFetch32 ret=%"PRIu32" val=%"PRIu32"\n", ret32, val32);
ret32 = SDL_AtomicDecrementThenFetch32(&val32); ret32 = SDL_AtomicDecrementThenFetch32(&val32);
printf("DecrementThenFetch32 ret=%d val=%d\n", ret32, val32); printf("DecrementThenFetch32 ret=%"PRIu32" val=%"PRIu32"\n", ret32, val32);
ret32 = SDL_AtomicAddThenFetch32(&val32, 10); ret32 = SDL_AtomicAddThenFetch32(&val32, 10);
printf("AddThenFetch32 ret=%d val=%d\n", ret32, val32); printf("AddThenFetch32 ret=%"PRIu32" val=%"PRIu32"\n", ret32, val32);
ret32 = SDL_AtomicSubtractThenFetch32(&val32, 10); ret32 = SDL_AtomicSubtractThenFetch32(&val32, 10);
printf("SubtractThenFetch32 ret=%d val=%d\n", ret32, val32); printf("SubtractThenFetch32 ret=%"PRIu32" val=%"PRIu32"\n", ret32, val32);
#ifdef SDL_HAS_64BIT_TYPE #ifdef SDL_HAS_64BIT_TYPE
printf("\n64 bit -----------------------------------------\n\n"); printf("\n64 bit -----------------------------------------\n\n");
val64 = 0; val64 = 0;
tfret = SDL_AtomicTestThenSet64(&val64); tfret = SDL_AtomicTestThenSet64(&val64);
printf("TestThenSet64 tfret=%s val=%llu\n", tf(tfret), ((unsigned long long)val64)); printf("TestThenSet64 tfret=%s val=%"PRIu64"\n", tf(tfret), val64);
tfret = SDL_AtomicTestThenSet64(&val64); tfret = SDL_AtomicTestThenSet64(&val64);
printf("TestThenSet64 tfret=%s val=%llu\n", tf(tfret), ((unsigned long long)val64)); printf("TestThenSet64 tfret=%s val=%"PRIu64"\n", tf(tfret), val64);
SDL_AtomicClear64(&val64); SDL_AtomicClear64(&val64);
printf("Clear64 val=%llu\n", ((unsigned long long)val64)); printf("Clear64 val=%"PRIu64"\n", val64);
ret64 = SDL_AtomicFetchThenIncrement64(&val64); ret64 = SDL_AtomicFetchThenIncrement64(&val64);
printf("FetchThenIncrement64 ret=%llu val=%llu\n", ((unsigned long long)ret64), ((unsigned long long)val64)); printf("FetchThenIncrement64 ret=%"PRIu64" val=%"PRIu64"\n", ret64, val64);
ret64 = SDL_AtomicFetchThenDecrement64(&val64); ret64 = SDL_AtomicFetchThenDecrement64(&val64);
printf("FetchThenDecrement64 ret=%llu val=%llu\n", ((unsigned long long)ret64), ((unsigned long long)val64)); printf("FetchThenDecrement64 ret=%"PRIu64" val=%"PRIu64"\n", ret64, val64);
ret64 = SDL_AtomicFetchThenAdd64(&val64, 10); ret64 = SDL_AtomicFetchThenAdd64(&val64, 10);
printf("FetchThenAdd64 ret=%llu val=%llu\n", ((unsigned long long)ret64), ((unsigned long long)val64)); printf("FetchThenAdd64 ret=%"PRIu64" val=%"PRIu64"\n", ret64, val64);
ret64 = SDL_AtomicFetchThenSubtract64(&val64, 10); ret64 = SDL_AtomicFetchThenSubtract64(&val64, 10);
printf("FetchThenSubtract64 ret=%llu val=%llu\n", ((unsigned long long)ret64), ((unsigned long long)val64)); printf("FetchThenSubtract64 ret=%"PRIu64" val=%"PRIu64"\n", ret64, val64);
ret64 = SDL_AtomicIncrementThenFetch64(&val64); ret64 = SDL_AtomicIncrementThenFetch64(&val64);
printf("IncrementThenFetch64 ret=%llu val=%llu\n", ((unsigned long long)ret64), ((unsigned long long)val64)); printf("IncrementThenFetch64 ret=%"PRIu64" val=%"PRIu64"\n", ret64, val64);
ret64 = SDL_AtomicDecrementThenFetch64(&val64); ret64 = SDL_AtomicDecrementThenFetch64(&val64);
printf("DecrementThenFetch64 ret=%llu val=%llu\n", ((unsigned long long)ret64), ((unsigned long long)val64)); printf("DecrementThenFetch64 ret=%"PRIu64" val=%"PRIu64"\n", ret64, val64);
ret64 = SDL_AtomicAddThenFetch64(&val64, 10); ret64 = SDL_AtomicAddThenFetch64(&val64, 10);
printf("AddThenFetch64 ret=%llu val=%llu\n", ((unsigned long long)ret64), ((unsigned long long)val64)); printf("AddThenFetch64 ret=%"PRIu64" val=%"PRIu64"\n", ret64, val64);
ret64 = SDL_AtomicSubtractThenFetch64(&val64, 10); ret64 = SDL_AtomicSubtractThenFetch64(&val64, 10);
printf("SubtractThenFetch64 ret=%llu val=%llu\n", ((unsigned long long)ret64), ((unsigned long long)val64)); printf("SubtractThenFetch64 ret=%"PRIu64" val=%"PRIu64"\n", ret64, val64);
#endif #endif
return 0; return 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment