stdint

    1热度

    1回答

    在C99中我们有固定大小的整数类型,在stdint.h中定义。 在stdlib.h中我们有ABS和上INT s运行格功能,以及他们长整型/长长整型同行实验室,llabs,LDIV ,lldiv。 由于int的长度/长/长长的变化的基础上的平台和使用的编译器不知道如何使用固定大小的整数像int16_t时选择ABS/DIV权变种,int32_t或的int64_t?

    0热度

    1回答

    我必须从stdin中读取完整的一行。当我使用fscanf时,它只能读取空格前面的字符串。我需要读取整个空格。任何想法我怎么能做到这一点?

    1热度

    1回答

    我想将用户输入流中的值赋给变量M和N.如果我指定了M和N类型的int,我可以让我的代码工作。但是,当我使用stdint.h指定它们为int16_t时,它将读取第一个值,但不会读取最后一个值。为什么是这样? 这里的代码工作就好了... ... #include <stdio.h> #include <stdint.h> int main(void) { char str[10];

    3热度

    3回答

    有一点让我对常规c整数声明感到困惑的是,他们的名字很奇怪,“long long”是最糟糕的。我只为32位和64位计算机构建,所以我不一定需要库提供的可移植性,但是我喜欢每种类型的名称都是一个长度相似的单个词,并且大小没有歧义。 // multiple word types are hard to read // long integers can be 32 or 64 bits dependi

    1热度

    1回答

    的对的序列 typedef int64_t I64; I64 i=5; printf("%"PRIi64",i); cppcheck给出如下警告: 警告:%lld格式字符串(编号1)需要'long long',但参数类型是'signed int'。 makro PRIi64由lld解析,这是正确的,但64位整数类型不被接受为long long int。 我希望有一种方法可以解决这个问题,

    3热度

    1回答

    我正在开发一个模块,在基于swig的Python代码中使用c inline。 为此,我想在C中使numpy数组可访问。到目前为止,我使用的是C类型,如unsigned short,但我希望使用stdint.h之类的uint16_t等类型来保存我的模块遇到的任何编译器。 不幸的是,当使用stdint.h类型时,c++函数不能正确包装。给出的错误是:_setc() takes exactly 2 ar

    1热度

    2回答

    序言:我想将指针转换为整数类型,例如检查对齐。 uintptr_t似乎是正确的类型,但it is guaranteed only in C, not in C++ (or C++11) 对于下面的代码: #include <stdint.h> #ifndef I_WONDER_IF_UINTPR_T_IS_DEFINED typedef unsigned long uintptr_t;

    0热度

    3回答

    Visual Studio 14stdint.h头部有固定宽度整数类型的定义,但是如果你真的看看那里的定义,他们只是委托回原语。该是。定义如下: typedef signed char int8_t; typedef short int16_t; typedef int int32_t; typedef long long int64_t; typedef unsigne

    0热度

    1回答

    所以我有4个uint16_t's,我试图将它们存储在单个uint64_t中。我想我有这个工作。 uint64_t encode(int16_t A, int16_t B, int16_t C, int16_t D){ return (uint64_t)((uint16_t) A) << 48 | (uint64_t)((uint16_t) B) << 32 | (

    14热度

    2回答

    我在stdint.h中看到了一个整数的不同类型的定义。以无符号32位整数为例。 uint32_t显然意味着32个比特的无符号整数。这是我一直使用的那个。 uint_fast32_t和uint_least32_t:什么是与uint32_t的差异,当我要使用它们,而不是uint32_t? 而现在,我看到uintX_t,其中X为24,40,48和56这发生在我的代码,我有48和56位整数的工作。举个例子