相关疑难解决方法(0)

什么是C中的size_t?

size_t在C中感到困惑.我知道它是由sizeof运营商返回的.但究竟是什么呢?它是数据类型吗?

假设我有一个for循环:

for(i = 0; i < some_size; i++)
Run Code Online (Sandbox Code Playgroud)

我应该使用int i;size_t i;

c int size-t

590
推荐指数
10
解决办法
68万
查看次数

size_t总是未签名?

标题:size_t总是无符号的,即for size_t x,x总是>= 0

c++ standards

59
推荐指数
4
解决办法
3万
查看次数

std::size_t 是不同的类型吗?

C++ 标准提到了这一点std::size_t

该类型size_t实现定义的无符号整数类型,它足够大以包含任何对象的字节大小 ([expr.sizeof])。

现在我的问题是,这种类型是否与其他 unsigned int 类型不同。我的意思是,我是否应该能够有这样的重载:

void myfunc(std::uint16_t) {}
void myfunc(std::uint32_t) {}
void myfunc(std::uint64_t) {}
void myfunc(std::size_t) {}
Run Code Online (Sandbox Code Playgroud)

因为如果它是一个不同的类型,我应该能够拥有这些重载,而如果不是,我应该得到重新定义错误。我总是认为这std::size_t应该是一个不同的类型,但我目前收到重新定义错误,这意味着它不是(至少在 GCC 和 Clang 中)

我问这个问题的原因是我想知道我是否对不同的 unsigned int 大小重载了一个函数,我是否可以安全地假设其中一个将被调用std::size_t或不被调用。

c++ overloading size-t language-lawyer

27
推荐指数
2
解决办法
2437
查看次数

标签 统计

c++ ×2

size-t ×2

c ×1

int ×1

language-lawyer ×1

overloading ×1

standards ×1