If your code is sensitive to the size of long long, can you use the predefine:

 

                __SIZEOF_LONG_LONG__

 

If that doesn’t work, then you can use:

 

                gcc –dM –E - < /dev/null

 

to tell you what predefines a gcc compiler has (I would probably look for predefines more specific to what your code is sensitive to than look for a particular compiler).

 

I also wonder a little about your original problem statement since “%lld” should be a way to always print “long long” and if you have a matched set of compiler and library, then it should adjust both together.  If you are using “%ld” instead, this works in situations where “long” is the same size as “long long” but may not work when these are different sizes.

 

--mev, Mike Vermeulen