2

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

在 header.h 中

const u32 g_my_const;

在代码.c

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

但我得到一个编译错误:

错误:未初始化的 const 'g_my_const' [-fpermissive]

有人可以解释如何正确地做到这一点。

4

1 回答 1

8

在页眉中使用

extern const u32 g_my_const;

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

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

正如@Thomas Jager在对您的问题的评论中已经提到的那样,您可以通过包含标题来为类型使用标准别名<stdint.h>

例如

#include <stdint.h>

extern const uint32_t g_my_const;
于 2019-07-26T14:16:31.430 回答