【发布时间】:2014-01-07 21:29:24
【问题描述】:
根据书籍,整数类型的变化占用或多或少的内存字节,具体取决于体系结构,但是 unsigned short 类型的值可以达到 65 535,因为 unsigned long 类型为 4 294 967 295。
到目前为止一切都很好,但是当我们想到格式占位符时,我们可以看到 int 类型的哪些变体(例如 short 和 long)具有您自己的格式占位符; %hd 和 %ld,分别。
通过这种方式,我们可以知道将为这种类型保留多少字节,因为我们知道我们正在显式使用数据类型,但是,对于 unsigned short 和 unsigned long 类型,只有一个格式占位符:%u。
对我来说,这意味着我无法控制将在此变量中设置的数字,我的意思是,我必须像 unsigned 一样声明变量,编译器将解释他的数字是否属于 unsigned short 或 unsigned 范围长。
声明这种类型的变量的正确形式是什么?
unsigned short <identifier_variable>;
unsigned short int <identifier_variable>;
或者只是:
unsigned <identifier_variable>;
如果数字属于无符号短类型的范围,将为该变量保留2 bytes,否则如果分配的数字属于无符号长类型,则一切正常工作,为该变量保留的字节数将为@ 987654327@.
那么,我必须如何做这个声明,还有其他我在 GNU 文档中找不到的格式占位符吗?
【问题讨论】:
-
您的问题是什么?是在
C还是C++? -
1.选择 C 或 C++,而不是两者。 2.
unsigned与unsigned int相同,unsigned short与unsigned short int相同 -
uintN_t
在 C99 中。 PRIuN . -
@ElliottFrisch 我只是用标签 C++ 签名,因为谁编程 C++ 通常对 C 有很多了解。我在 C 的标题上引起了人们的注意,但看起来更好这似乎不是一个好习惯。
标签: c formatting