Avoiding multiple includes

This is a discussion on Avoiding multiple includes within the C Programming forums, part of the General Programming Boards category; Hi all
I met a 'little' problem concerning multiple includes of the same header file:
Let's say I have the ...

Now as I use 'AES_KEY' within the two structs, I have to include <openssl/aes.h> in the two header files, otherwise I get warnings when compiling?...So far that would be OK, there are no multiple includes of the same file till here.

But let's assume that the file "capture.c" needs both "user.h" and "capture.h" included? I would have the file <openssl/aes.h> included two times. How should I avoid that? Is there some 'standard' way? Like using a void pointer to point to the actual encryption/decryption keys?

Sure thanks, I know that.
But do all header files make use of that guard? If not it wouldn't be of use here.
I just looked in the <openssl/aes.h> header file and saw that they're using the guard, didn't know that. But what if they didn't? What would I do then? As I don't want to rely on "everyone does it"...