Bruno Haible <[EMAIL PROTECTED]> writes: > I've once debugged a program where a header file declared a variable > of type > int (*) (const char *, struct stat *) > and part of the program was compiled with _FILE_OFFSET_BITS=64 > (implying stat := stat64) and another part of the program without it. > I don't want to debug similar mistakes again.
We can't solve that problem in general, since (as you note) different compilers on the same platform (or even the same compiler, with different options) might disagree about the standard types. So it's not an issue of solving the problem in general; it's an issue of how likely it would occur in practice, with the approach I proposed. I think the problem unlikely and not worth worrying about. The only types for which it's at all likely that there will be disagreement are int_fast32_t and friends, and these are rarely used by other standard headers, particularly on platforms that don't have a conforming stdint.h. On Solaris 10, for example, the *int_fast* types are not used by any other standard header.
