You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建包含自定义固定宽度数据类型的C语言数据库

封装固定宽度数据类型为可复用C库

要把这些固定宽度数据类型封装成可复用的库,只需把类型定义从主函数中剥离出来,放到独立头文件中即可,具体步骤如下:

1. 创建头文件存放类型定义

新建名为fixed_types.h的头文件,将所有typedef定义放入其中,并添加头文件保护避免重复包含:

#ifndef FIXED_TYPES_H
#define FIXED_TYPES_H

// 无符号固定宽度整数类型
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
typedef unsigned long int uint32_t;

// 有符号固定宽度整数类型
typedef signed char sint8_t;
typedef signed short int sint16_t;
typedef signed long int sint32_t;

// 浮点类型
typedef float float32_t;
typedef double float64_t;

#endif // FIXED_TYPES_H

头文件保护(#ifndef/#define/#endif)的作用是防止同一个头文件被多次包含时,出现类型重复定义的编译错误。

2. 编写测试程序验证库

新建测试文件(比如test_types.c),通过包含头文件调用这些类型,示例代码如下:

#include <stdio.h>
#include "fixed_types.h"

int main(void) {
    printf("Size Of Unsigned Char = %zu \n", sizeof(uint8_t));
    printf("Size Of Unsigned Short Integer = %zu \n", sizeof(uint16_t));
    printf("Size Of Signed Long Integer = %zu \n", sizeof(sint32_t));
    printf("Size Of Double Float = %zu \n", sizeof(float64_t));

    return 0;
}

注意:这里把原代码中的void main改为标准的int main(void),并将%d替换为%zu(sizeof返回size_t类型,%zu是对应的标准格式化输出符),符合C语言规范。

3. 编译与使用

将头文件和测试文件放在同一目录下,用GCC编译:

gcc test_types.c -o test_types

运行生成的可执行文件:

./test_types

即可看到各类型的大小输出。

额外说明

  • 若要在多个项目中复用这个库,只需将fixed_types.h复制到项目目录,或者添加到编译器的头文件搜索路径中。
  • 实际上C标准库已提供跨平台的固定宽度类型定义(<stdint.h>),如果追求严格跨平台兼容性,优先使用标准库类型;但如果是自定义需求,上述封装方式完全可行。

内容的提问来源于stack exchange,提问作者Samuel Adham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 17:33:25