在 C 中定义全局常量

Defining global constants in C

如何在 C 中定义全局常量? 我被告知要做这样的事情

在header.h

const u32 g_my_const;

在code.c

#include "header.h"
const u32 g_my_const= 10U;

但是我得到一个编译错误:

error: uninitialized const 'g_my_const' [-fpermissive]

谁能解释一下如何正确地做到这一点。

在header

中使用
extern const u32 g_my_const;

在这种情况下,这将只是常量的声明,在 c 模块中将有它的定义。

#include "header.h"
const u32 g_my_const= 10U;

正如 @Thomas Jager 对您的问题的评论中已经提到的,您可以通过包含 header [=13] 来为类型使用标准别名=]

例如

#include <stdint.h>

extern const uint32_t g_my_const;