我可以在 c99 中包含本地头文件而不会使命名空间进一步膨胀吗?

时间:2021-06-16 19:38:16

标签: header local private c99

有没有办法让我包含一个 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

0 个答案:

没有答案