相关疑难解决方法(0)

什么是uint_fast32_t以及为什么要使用它来代替常规int和uint32_t?

因此,对于其原因typedef:ED原始数据类型是抽象低级别表示,并使其更容易理解(uint64_t而不是long long类型,这是8个字节).

但是,有uint_fast32_t与之相同typedefuint32_t.使用"快速"版本会使程序更快吗?

c c++ types

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

uint32_t和size_t的printf格式说明符

我有以下内容

size_t   i = 0;
uint32_t k = 0;

printf("i [ %lu ] k [ %u ]\n", i, k);
Run Code Online (Sandbox Code Playgroud)

编译时我收到以下警告:

format ‘%lu’ expects type ‘long unsigned int’, but argument has type ‘uint32_t’
Run Code Online (Sandbox Code Playgroud)

当我使用夹板运行时,我得到以下内容:

Format argument 1 to printf (%u) expects unsigned int gets size_t: k
Run Code Online (Sandbox Code Playgroud)

非常感谢任何建议,

c printf

96
推荐指数
4
解决办法
19万
查看次数

如何打印uint32_t和uint16_t变量值?

我正在尝试打印uint16_t和uint32_t值,但它没有提供所需的输出.

#include <stdio.h>
#include <netinet/in.h>

int main()
{
     uint32_t a=12,a1;
     uint16_t b=1,b1;
     a1=htonl(a);
     printf("%d---------%d",a1);
     b1=htons(b);
     printf("\n%d-----%d",b,b1);
     return 0;
}
Run Code Online (Sandbox Code Playgroud)

我也用过

 printf("%"PRIu32, a);
Run Code Online (Sandbox Code Playgroud)

这显示错误.

如何打印这些值以及所需的输出?

c gcc

39
推荐指数
2
解决办法
12万
查看次数

如何使用像scanf这样的函数使用int16_t或int32_t

我理解int16_tint32_t在C中的方式是它们在您的计算机上分别被命名为16位和32位数字.我相信当你需要保证数字为16或32位时你会使用这些,因为不同的系统并不总是代表int32位或short16位(这个假设是正确的吗?当我在网上看时,我找到了混合的答案.) .

我的问题是当我要求它们实际上是16位或32位或其他什么时,我将如何使用一个函数scanf来获取来自具有int16_t或者int32_t或任何其他类型定义数字类型的用户的输入?有某种特殊的字符串修饰符吗?通常情况下,如果我想int从一个用户那里得到一个没有关心它实际表示多大的用户,我会写这样的东西

scanf("%d", &int);
Run Code Online (Sandbox Code Playgroud)

这是有效的,如果我传入一个,int32_t但我认为它只是因为int我的系统是32位,它没有特别给我一个32位数,而只是给了我一个int.我如何获得保证为32位的数字?我查看了这个字符串修饰符和其他一些地方的页面,但没有提到这些类型定义的数字类型.

编辑:自从收到我的问题的答案后,我做了一些谷歌搜索并找到了这个.我将它包括在下面以供参考.

uppercase hexadecimal printf format for uintptr_t

#define SCNd16   "d"
decimal scanf format for int16_t

#define SCNd32   "ld"
decimal scanf format for int32_t

#define SCNd8   "hhd"
decimal scanf format for int8_t

#define SCNdFAST16   "d"
decimal scanf format for int_fast16_t

#define SCNdFAST32   "ld"
decimal scanf format …
Run Code Online (Sandbox Code Playgroud)

c user-input scanf

18
推荐指数
1
解决办法
2万
查看次数

正确使用具有固定大小类型的scanf/printf(和系列)的方法?

阅读这个问题,我开始想知道 - 使用scanf/ printf(和系列)固定大小类型的正确方法是什么?

举例来说,如果我有short int或者int,我会使用%hd,并%d分别-罚款.

但如果我有int16_t什么?short int可能与之不同int16_t,它取决于平台.任何其他固定尺寸(整体)类型都一样吗?


注意:因为看起来我收到了一些向下投票,因为我"没有尝试谷歌这个 ",看起来我需要解释:我没有在这里看到类似的问题,这就是我发布它的原因.SO中的大部分问题都可以通过谷歌回答,而不是在这里问.那将使StackOverflow成为现实,它实际上就是现在.

不,我没有这样做是为了声誉 - 我今天已经达到每日声望上限(在发布此问题之前有24票).

我的观点是 - 我认为这不值得投票.

c printf scanf fixed-size-types

15
推荐指数
2
解决办法
6691
查看次数

标签 统计

c ×5

printf ×2

scanf ×2

c++ ×1

fixed-size-types ×1

gcc ×1

types ×1

user-input ×1