c99

    2热度

    2回答

    下面是IBM报价(在C99标准还规定) 当您打开一个文件进行更新,可以对所得到的数据流进行输入和输出 操作。但是,输出操作 不能在没有插入fflush子例程调用或文件定位操作 (fseek,fseeko,fseeko64,fsetpos,fsetpos64或倒带子例程)的情况下不进行输入操作。 此外,除非输入操作遇到文件末尾,否则输入操作不能直接跟随输出 操作而没有介入的刷新或文件定位操作, 。

    3热度

    2回答

    我看到这个例子,我有一个crc32.c文件,其中包含: inline int32_t crc32_compute(int32_t *buffer, size_t size) { ... } 在头文件中我发现: extern inline int32_t crc32_compute(int32_t *buffer, size_t size); 对我来说,inline关键字没有作用

    0热度

    1回答

    我试图以更易于管理的方式制作大块数据。 #pragma anon_unions typedef union { uint8_t Contents[PACKET_SIZE]; struct { uint8_t Command; uint8_t X[24]; uint8_t Y[24]; uint8_t

    1热度

    2回答

    每cppreference.com长度修饰符%L仅适用于浮点类型。但现代GNU编译器似乎也接受它作为%ll(long long)的同义词的整数。有没有可能在这方面引用错误?或者%L是整数在未来会成为标准吗?

    7热度

    4回答

    第7.18.1.4 C99标准状态: 以下类型表示具有任何有效的指针void可以转化为这种类型的属性的无符号整数类型,则转换回指针void,结果将相当于原来的指针: uintptr_t 这是否意味着只有void *类型可以转换为uintptr_t,并返回而不更改原始指针的值? 我特别想知道,如果下面的代码是需要使用uintptr_t: int foo = 42; void * bar = &fo

    1热度

    1回答

    我想创建一个trie,我需要所有的布尔等于false,除非另有规定。然而,这种同时成员初始化和定义的格式只在C++ 11中有效......显然,有没有办法在c99中做到这一点? typedef struct { bool booleans[28] = { false }; struct node *next[27]; }node;

    -3热度

    1回答

    我尝试十六进制值转换成一个字符串,我已经看过这个question,但我不知道如何将它转换以动态的方式一个字符串,就像如果我的功能得到了六角系列8或9或更多。我怎样才能优化这个片段与一个循环遍历给定的十六进制值并转换每个十六进制值(第一个除外),然后是.? /* Input: char[] ="2b06010201010300" Output: char[]="1.3.6.1.2.1.1.3.0

    10热度

    2回答

    gcc的较新版本提供Wimplicit-fallthrough,这对于大多数switch语句来说都是非常棒的。但是,我希望允许所有病例陈述中都有一个switch语句。 有没有办法做一个明确的跌倒?我宁愿避免为此文件编译Wno-implicit-fallthrough。 编辑:我正在寻找一种方法来通过显式(如果可能)使秋天,而不是通过编译器开关或杂注关闭警告。

    2热度

    1回答

    对于较大的任务的一部分,我被要求实现一个函数,翻转一个整数的任意位。问题是“整数”可能是c中的任何默认整数类型,从int8_t到uint64_t,我不知道它会是哪一个。 (事实上​​,我的代码已经在所有这些类型的测试) 这是我的问题的尝试: //NOTE: g_int is the generic integer, it's typedef'd in a .h file g_int flip_b

    0热度

    3回答

    使用-std=gnu99 GCC,下面的代码编译: void f() { struct X data = {}; // do something with data } 这是合法的C? 这是一个GNU扩展? 如何告诉gcc不接受这种init? 欲确保与其他编译器(例如像视觉2015)兼容性