有没有办法让我包含一个 c99 头文件,并且只能在包含它的头文件中访问它?
我正在尝试创建一些 typedef 和宏,但我不希望它们通过它的标头依赖项使命名空间进一步膨胀。
这是我的意思的一个例子..
// l2kdef.h
#ifndef LIN32_L2KDEF_H
#define LIN32_L2KDEF_H
//have these only accessible in this header begin
#include <stdbool.h>
#include <stdlib.h>
#include <float.h>
#include <raylib.h>
//have these only accessible in this header end
//public types below
typedef char _Char;
typedef int8_t _I8;
typedef int16_t _I16;
typedef int32_t _I32;
typedef int64_t _I64;
typedef u_int8_t _U8;
typedef u_int16_t _U16;
typedef u_int32_t _U32;
typedef u_int64_t _U64;
typedef float _F32;
typedef double _F64;
typedef size_t _Enum;
typedef size_t _Size;
typedef struct _Col
{
_U8 r;
_U8 g;
_U8 b;
} _Col;
typedef struct _Img
{
_U8* data;
_U32 w;
_U32 h;
} _Img;
typedef struct _Tex
{
_U32 id;
_Img img;
} _Tex;
#define bool _Bool
#define char _Char
#define i8 _I8
#define i16 _I16
#define i32 _I32
#define i64 _I64
#define u8 _U8
#define u16 _U16
#define u32 _U32
#define u64 _U64
#define f32 _F32
#define f64 _F64
#define enum _Enum
#define size _Size
#define col _Col
#define img _Img
#define tex _Tex
#endif //LIN32_L2KDEF_H