一 布尔类型(1) C89,没有布尔类型,C99有布尔类型. C工程支持C89,OC支持C99(2) 两种数值 bool true (真) 不是0就为真 flase(假) 为0 就是假 c语言 BOOL YES(真) = 1 NO(假) = 0 oc 语言 BOOL的值 的转化符为 %d...
分类:
编程语言 时间:
2015-09-25 16:13:03
阅读次数:
204
于C标准库的语言,printf、scanf、sscanf、sprintf、sscanf入输出函数,參数都是可变的。在调试程序时。我们可能希望定义一个參数可变的输出函数来记录日志,那么用可变參数的宏是一个不错的选择。在C99中规定宏也能够像函数一样带可变的參数,如:#define LOG(for...
分类:
编程语言 时间:
2015-09-11 10:40:40
阅读次数:
221
/* 布尔类型: 1.c89没有布尔类型,c99有布尔类型.c工程支持c89,oc工程c99. 2.两种数值: bool true(真) false(假) C语言 BOOL YES(真) NO(假) OC语言 3.真和假的表示 C语言 非0即为真 0就是假...
分类:
编程语言 时间:
2015-09-10 21:11:49
阅读次数:
261
__VA_ARGS__ 是一个可变参数的宏,很少人知道这个宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。实现思想就是宏定义中参数列表的最后一个参数为省略号(也就是三个点)。这样预定义宏_ _VA_ARGS_ _就可以被用在替换部分中,替换省略号所代...
分类:
其他好文 时间:
2015-09-05 19:08:47
阅读次数:
166
printf()和fprintf()这些输出函数的参数是可变的,在调试程序时,你可能希望定义自己的参数可变的输出函数,那么可变参数宏会是一个选择。C99中规定宏可以像函数一样带有可变参数,比如#define LOG(format, ...) fprintf(stdout, format, __VA_...
分类:
其他好文 时间:
2015-08-17 19:04:47
阅读次数:
199
首先看看什么是柔性数组
C99中,结构中的最后一个元素允许是未知大小的数组,这就叫做柔性数组成员,但结构中的柔性数组成员前面必须至少一个其 他成员。柔性数组成员允许结构中包含一个大小可变的数组。sizeof返回的这种结构大小不包括柔性数组的内存。包含柔性数组成员的结构用malloc ()函数进行内存的动态分配,并且分配的内存应该大于结构的大小,以适应柔性数组的预期大小。
基本模型为typedef...
分类:
编程语言 时间:
2015-08-16 21:25:09
阅读次数:
222
C keyword register 并讨论共同使用嵌入式汇编 register 是C99 的keyword之中的一个.register 是储存类型之中的一个.这里仅讨论register 储存类型。auto static extern的各种故事请移步《C on pointer...
分类:
其他好文 时间:
2015-08-13 14:10:39
阅读次数:
100
数组的产生:数据是一种存放数据的容器。所以:一个数组中里面的元素是同一种类型的。
一维数组:
1、定义: 类型 名称 [元素数量]
注意:元素数量必须是整数,c语言中没有对象这个概念,所以存放的都是基本的数据类型,而在oc中的数组中存放的是必须是对象。
在c99之前,元素数量必须子编译的时候定义下来,而c99之后,确实可以没有没有定义下来。
eg: int[10];//表示定了1...
分类:
编程语言 时间:
2015-08-09 22:35:19
阅读次数:
205
比如写出下面这段程序:for (int i = 0; i < n; ++i) do_something();然后用gcc编译,会报‘for’ loop initial declarations are only allowed in C99 mode的错误。原因是在循环条件中声明变量,只在C99标....
分类:
其他好文 时间:
2015-08-05 19:58:23
阅读次数:
304
【摘要】最近用到一些格式化输出符,调试老提示类型不对,故整理一下,方便查看。
1、 转换说明符
转换说明符
意 义
%c
把输入解释成一个字符
%d
把输入解释成一个有符号十进制整数
%e,%f,%g,%a
把输入解释成一个浮点数(%a 是C99标准)
%E,%F,%G...
分类:
其他好文 时间:
2015-07-29 21:29:07
阅读次数:
276