c99相关内容

如何实现在标准C的memmove不需要复制?

从我的系统上的手册页: 无效的memmove *(无效* DST,常量无效* SRC,为size_t的len); 描述结果 该memmove与()函数将len个自的字符串src字节串DST。结果 两个字符串可以重叠;副本总是以非破坏性的结果,完成 方式。 从C99标准: 6.5.8.5当两个指针进行比较,则结果取决于 在地址相对位置 物体的空间指向。如果 两个指 ..
发布时间:2016-08-17 21:35:58 C/C++

状态机教程

我只是想知道是否有人知道互联网发展状态机上的一些好的教程。或电子书? 我开始对状态机工作,只是需要一般的东西让我开始。 解决方案 状态机在C很简单,如果你使用的函数指针。 基本上你需要2阵列 - 一个状态函数指针和一个状态转换规则。每个州函数返回code,可以通过国家和返回code查找状态转移表中查找下一个状态,然后就执行它。 INT entry_state(无效); INT fo ..
发布时间:2016-08-17 21:33:55 C/C++

主要的返回值范围

这是什么标准说一下主要的返回值范围是多少? 说仅达255? 由于 INT主要(无效){ 返回256; } 回声$? ; #0出 解决方案 该标准不说了。 0,EXIT_SUCCESS和EXIT_FAILURE已经(在某种程度上)中规定的含义。还有什么依赖于实现。 在present时候,大多数基于Unix的系统只支持8位的返回值。 Windows支持(至少)一个32位的返回值。我还没 ..
发布时间:2016-08-17 21:33:02 C/C++

布尔为int的转换

如何便携式是这种转换。我可以肯定地说这两个断言通过? INT X = 4℃; 5; 断言(X == 1);X = 4大于5; 断言(X == 0); 不要问为什么。我知道这是丑陋的。谢谢你。 解决方案 INT X = 4℃; 5; 完全便携。标准的一致性。 布尔到 INT 的转换是隐含的! §4.7/ 4来自C ++标准说(积分的转换的) 如果来源类型为布尔,值 假转换到零 ..
发布时间:2016-08-17 21:29:21 C/C++开发

请问C标准认为有一两个'结构uperms_entry“类型这个头?

您能否给引经据典从的三C标准之一(preferably C99或C11),表示下面的头文件是否有一个或两个结构uperms_entry 在这类型的? 的#ifndef UPERMS_CACHE_INCLUDE #定义UPERMS_CACHE_INCLUDEtypedef结构互斥MT_MUTEX;typedef结构uperms_cache { MT_MUTEX * cache_lock; ..
发布时间:2016-08-17 21:27:12 C/C++

对于在C89,C90或C99的所有功能所需的原型?

要真正符合标准,必须在C中的所有功能(除了主)有原型,即使他们自己在同一个翻译单元定义后,只用? 解决方案 这取决于你的意思是'真正符合标准的“是什么。然而,简单的答案是“这是一个好主意,以确保所有的功能在使用前有原型的范围。” 一个更合格的答卷指出,如果函数接受可变参数(特别是的printf()函数家族),那么原型必须在范围上要严格标准兼容。这是C89(从ANSI)和C90的真实(在I ..
发布时间:2016-08-17 20:50:07 C/C++

为什么C ++ 11不支持指定的初始化列表为C99?

人员结构 { INT高度; 诠释权重; INT年龄; };诠释的main() { 者P {。年龄= 18}; } 上面的code为C99合法的,但在C ++ 11不合法的。 那是C ++ 11不支持这样一个方便的功能的理由? 解决方案 C ++有构造函数。如果是有意义的初始化只是一个成员,那么,可以通过实施适当的构造函数在程序pssed前$ P $。 ..
发布时间:2016-08-17 20:45:49 C/C++开发

是否有可能遍历在复杂的宏参数呢?

我不知道是否有可能遍历传递给C99一个可变参数宏或使用任何GCC扩展参数? 有关如是否有可能写一个通用的宏,采用的结构中每个字段的偏移量参数并打印通过结构及其字段? 事情是这样的: 结构A { int类型的; INT B: INT℃; };/ * PRN_STRUCT_OFFSETS将打印的每个字段的偏移 结构中传递的第一个参数。 * /INT主(INT AR ..
发布时间:2016-08-17 20:44:59 C/C++

C99 stdint.h头和MS Visual Studio中

要我惊讶的是我刚发现C99 stdint.h是从MS Visual Studio 2003中缺少向上。我敢肯定,他们有他们的理由,但没有人知道我在哪里可以下载一个副本?如果没有这个头我有各类有用uint32_t等无定义等。 解决方案 原来你可以从这个标题的MS版本: ..
发布时间:2016-08-17 20:33:40 C/C++开发

printf的宽度说明保持浮点值的precision

有没有可以适用于浮点说明,将输出自动设置到的显著数字的必要数量的printf 宽度说明>使得扫描串回来时,原来的浮点值被收购? 例如,假设我打印浮动到 2 的precision小数位: 浮动foobar的= 0.9375; 的printf(“%2F”,foobar的); //打印出0.94 当我扫描输出 0.94 ,我没有符合标准的保证,我会得到原始的 0.9375 浮点值回(在这个例子中 ..
发布时间:2016-08-17 20:27:31 C/C++

有没有机器,是sizeof(字符)= 1,或至少CHAR_BIT&GT!; 8?

是否有机器(或编译器),其中的sizeof(字符)!= 1 ? 确实 C99标准表示,的sizeof(char)的标准达标的实施必须正好是1?如果是的话,请给我节号和引用。 的更新:的 如果我有一个机(CPU),这是不能满足字节(最小读是4个字节,对准),而字节只有4-S( uint32_t的),可以编译为这台机器定义的sizeof(char)的 4 的 的sizeof(char)的将是1, ..
发布时间:2016-08-17 20:27:07 C/C++

C99的_Bool数据类型(C)的

C编程语言的C99标准定义了_Bool数据类型为另一个数据类型的宏(如语言不能够处理一个类型安全的布尔值)。是_Bool为unsigned char型,unsigned int类型或某种其他数据类型的宏? 解决方案 _Bool 是根据C标准的独立integere类型。 _Bool 是C语言的关键字 2目的声明为类型_Bool是大到足以存储值 0和1 _Bool 是无符号整数类 ..
发布时间:2016-08-12 09:49:39 其他开发

理由不使用_Bool在Objective-C?

由于C99,C现在有一个正确的布尔类型, _Bool 。 Objective-C的,为C严格的超集,继承了这一点,但它是在20世纪80年代创建回来的时候,有没有C布尔类型,所以Objective-C的定义 BOOL 为符号字符。 所有可可用途 BOOL 一样,所有非NEXT /苹果可可code,我已经看到。显然,对于与现有的协议(例如, -applicationShouldTerminateAf ..
发布时间:2016-08-12 09:33:20 移动开发

编译C code。与布尔不使用C99标准

我试过用在C布尔变量来编译code和我已经包括了stdbool头,但是当我编译它,我没有指定我想与C99标准编译它(所以它与ANSI C标准编译),但也无妨的工作。 我想知道这是为什么? 这里的code: 的#include<&stdio.h中GT; #包括LT&;&stdbool.h GT;诠释主(){ 焦炭名[20]; 的printf(“你叫什么名字?”); ..
发布时间:2016-08-12 09:32:09 其他开发

C99 - 为什么虚实定义为0和1,而不是((布尔)0)和((布尔)1)?

对面的断言,失败迷迷糊糊的,因为它比假以一个函数的返回类型,函数本身返回一个bool和断言没有检查才有价值,而且还返回值的类型来匹配一假,以保证时,返回一个布尔值。 现在的问题是,C99布尔定义为_Bool和_Bool甚至不一定相同的大小为int(事实上,根据我的经验,在时下大多数平台往往是同样大小的无符号字符),更不用谈是相同的类型(这实际上是不可能的,因为_Bool是一个内嵌式的C99语言) ..
发布时间:2016-08-12 09:15:11 其他开发