首页 > 解决方案 > 如何在 C 中将文字初始化为 size_t?

问题描述

我和这个问题有同样的问题,除了我写的是 C。

如何初始化文字数字以具有类型size_t

基本上,我有一个相当于这个的宏:

#define myprint(S) { printf("hello %zu", S); }

我想像这样使用它:

myprint(0);

但我收到消息:

格式“%zu”需要“size_t”类型的参数,但参数的类型为“int”

我试过写作0lu,但它不适用于所有架构。

标签: c

解决方案


没有特定于size_t. 您需要改用演员表。

#define myprint(S) { printf("hello %zu", (size_t)S); }

考虑到它的使用方式,无论如何这是最好的方法。


推荐阅读