C 中TRUE与true什么区别

C 中TRUE与true什么区别,第1张

找到袜返如下几种说法

1.true和false是bool类型

而TRUE和FALSE的定义是:(在AFX.H文件中)

#define

FALSE

0

#define

TRUE

1

2.大写的是从c开始就有的宏定义

小写的是c++引入的关键字

3.注意vc里大小写有别就行了

4.要说区别,那他们有一个最大的区别,bool是C语言,而BOOL不是C语言,编译器能认识指蔽bool而不认识BOOL,BOOL只是int的别称,说得更俗一点,bool是C保留字,而BOOL不是,你可以这样把BOOL定义成别的,当然在不与别的头文件冲突的情况下唯好州.

float

BOOL

当然,如果谁写出这样的程序会被骂死的!但它并没有语法错误.

5.true与TRUE的曲别:

两者虽然取值一样,但前者是占8位,后者占32位的。

MS搞个TRUE出来,可能是为了进行内存对齐吧。

自己感觉第五个比较专业,呵呵

1、增加restrict指针

C99中增加了公适用于指针的restrict类型修饰符,它是初始访问指针所指对象的惟一途径,因此只

有借助restrict指针表达式才能访问对象。restrict指针指针主要用做函数变元,或者指向由malloc()函

数所分配的内存变量卖誉悉。restrict数据类型不改变程序的语义。

如果某个函数定义了两个restrict指针变元,编译程序就虚圆假定它们指向两个不同的对象,memcpy()

函数就是restrict指针的一个典型应用示例。C89中memcpy()函数原型如下:

代码:

void *memcpy (void *s1, const void *s2, size_t size);如果s1和s2所指向的对象重叠,

其 *** 作就是未定义的。memcpy()函数只能用于不重叠的对象。C99中memcpy()函数原型如下:

代码:

void *memcpy(void *restrict s1, const void *restrict s2,size_t size);通过使用restrict

修饰s1和s2 变元,可确保它们在该原型中指向不同的对象。

2、inline(内联)关键字

内联函数除了保持结构化和函数式的定义方式外,还能使程序员写出高效率的代码。函数的每次调用与

返回都会消耗相当大的系统资源,尤其是当函数调用发生在重复次数很多的循环语句中时。一般情况下,当发

生一次函数调用时,变元需要进栈,各种寄存器内存需要保存。当函数返回时,寄存器的内容需要恢复。如果该

函数在代码内进中乎行联机扩展,当代码执行时,这些保存和恢复 *** 作旅游活动会再发生,而且函数调用的执

行速度也会大大加快。函数的联机扩展会产生较长的代码,所以只应该内联对应用程序性能有显著影响的

函数以及长度较短的函数。

3、新增数据类型

_Bool

值是0或1。C99中增加了用来定义bool、true以及false宏的头文件夹<stdbool.h>,以便程序

员能够编写同时兼容于C与C++的应用程序。在编写新的应用程序时,应该使用

<stdbool.h>头文件中的bool宏。

_Complex and _Imaginary

C99标准中定义的复数类型如下:float_Complexfloat_Imaginarydouble_Complex

double_Imaginarylong double_Complexlong double_Imaginary.

<complex.h>头文件中定义了complex和imaginary宏,并将它们扩展为_Complex和_Imaginary,

因此在编写新的应用程序时,应该使用<stdbool.h>头文件中的complex和imaginary宏。

long long int

C99标准中引进了long long int(-(2e63 - 1)至2e63 - 1)和unsigned long long int(0 - 2e64

- 1)。long long int能够支持的整数长度为64位。

NULL=0

FALSE=0

TRUE记得是-1,但运迅是如果用于if语句中,任何非0值都是true。但是TRUE一个宏,无法覆盖所有情况。

所以切记不要写出TRUE == (表达式)这样的判断,因为这样的判断往往都是错旁迹此误的

举例来说,州山

int bitmask = 0x0010000

if(~bitmask) //这是true的

if(TRUE == ~bitmask) //虽然你想要达到的目的和上面一样,但是实际这会是false。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12263382.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存