Platform independent size_t Format specifiers in c?
I want to print out a variable of type size_t in C but it appears that size_t is aliased to different variable types on different architectures. For example, on one machine (64-bit) the following code does not throw any warnings: size_t size = 1; printf("the size is %ld", size); but on my other machine (32-bit) the above code produces the following warning message: warning: format '%ld' expects type 'long int *', but argument 3 has type 'size_t *' I suspect this is due to the difference in pointer size, so that on my 64-bit machine size_t is aliased to a long int ( "%ld" ), whereas on my 32