当前位置:首页 > 西部百科 > 正文内容

const和define区别(const和define的区别)

2023-05-08 17:12:06西部百科1

const和define的区别

宏定义:是定义一个符号常量,在C语言中用#define来定义; 如:#defineP3.14 在C语言中,就表示定义一符号常量P与3.14是一样的。 注意:P在程序运行期间,其值是不能改变的。 而Const一般是Basic类的语言里用于定义符号常量的方法; 如:ConstPasSingle=3.14 道理同上

c++const和define区别

所谓标识符是指常量、 变量、语句标号以及用户自定义函数的名称。C语言规定标识符只能由字母、数字、 下划线组成,并且只能由字母、下划线开头。一些标识符被赋于特定的含义就叫做保留字(或称为关键字)。

由ANSI标准定义的保留字共32个 auto,double,int,struct,break,else,long,switch,case,enum,register,typedef,char,extern,return,union,const,float,short,unsigned,continue,for,signed,void,default,goto,sizeof,volatile,do,if,while,static 所以 void define 不能做用户标识符

define 和 const 的区别

C语言中#开头的是预处理指令,不是C语句的一部分#开头的语句,在预处理阶段,由预处理器处理,例如:#include预处理器会将stdio.h文件的内容加入到当前文件的头部,而#defineCONST10则会将文件中的CONST,用10代替(是直接代替)预处理完毕后,才对文件进行编译。

define和const定义常量的区别

是一个宏定义,#define_constconst之类的东西,目的是为了在不同的平台上顺利编译。不同的编译器(gcctccbccmvc等)内部可能用了不同的标识符,

constant和define区别

使用权限 : 所有使用者

使用方式 : sleep [--help] [--version] number[smhd]

说明 : sleep 可以用来将目前动作延迟一段时间

参数说明 :

--help : 显示辅助讯息

--version : 显示版本编号

number : 时间长度,后面可接 s、m、h 或 d

其中 s 为秒,m 为 分钟,h 为小时,d 为日数

例子 :

显示目前时间后延迟 1 分钟,之后再次显示时间 :

date;sleep 1m;date

这个命令更多应用于shell脚本编程里和程序里

如下面的一段程序:

应用程序:

#include <syswait.h>

usleep(n) //n微秒

Sleep(n)//n毫秒

sleep(n)//n秒

驱动程序:

#include <linux/delay.h>

mdelay(n) //milliseconds 其实现

#ifdef notdef

#define mdelay(n) (\

{unsigned long msec=(n); while (msec--) udelay(1000);})

#else

#define mdelay(n) (\

(__builtin_constant_p(n) && (n)<=MAX_UDELAY_MS) ? udelay((n)*1000) : \

({unsigned long msec=(n); while (msec--) udelay(1000);}))

#endif

调用asm/delay.h的udelay,udelay应该是纳秒级的延时

Dos:

sleep(1); //停留1秒

delay(100); //停留100毫秒

Windows:

Sleep(100); //停留100毫秒

Linux:

sleep(1); //停留1秒

usleep(1000); //停留1毫秒

每一个平台不太一样,最好自己定义一套跨平台的宏进行控制

秒还是微秒?关于延时函数sleep()

因为要写一段代码,需要用到sleep()函数,在我印象中,sleep(10)好像是休眠10微秒,结果却是休眠了10秒(在Linux下)。觉得很奇怪,因为头儿也记得好像是微秒为单位的。所以就查了一下。

原来linux下的sleep函数原型为:

unsigned int sleep(unsigned int seconds);

而MFC中的Sleep函数原型为:

void Sleep(DWORD dwMilliseconds);

也就是说,Linux下(使用的gcc的库),sleep()函数是以秒为单位的,sleep(1);就是休眠1秒。而MFC下的sleep()函数是以微秒为单位的,sleep(1000);才是休眠1秒。原来如此啊。而如果在Linux下也用微妙为单位休眠,可以使用线程休眠函数:void usleep(unsigned long usec);当然,使用的时候别忘记#include <system.h>哦。

另外值得一提的是,linux下还有个delay()函数,原型为extern void delay(unsigned int msec);它可以延时msec*4毫秒,也就是如果想延时一秒钟的话,可以这么用 delay(250)。

c语言const和define的区别

define是定义的意思,将一个变量强制定义为你想要的值。如#define PI 3.14就是将PI的值定义成3.14,这样在程序里看到PI就可以替换成3.14了。

在程序执行期间其值可以改变的量称为变量,变量类型又分为系统变量和用户自定义变量。

用户自定义变量其实和系统变量含义是一样的,在学到结构化编程的时候,你就会明白自定义变量的意思了。

系统变量分为四种:

1、int整形变量;

2、用户存放整数的变量;

3、占4个字节的大小;float单精度浮点型,就是存放小数点的数值;占4个字节大小;double高精度浮点型,相对float而言,double保留的小数点位数更精确,

4、占8个字节的大小;char字符变量,主要存放字母,占1个字节的大小。

简单的define定义

#define MAXTIME 1000

一个简单的MAXTIME就定义好了,它代表1000,如果在程序里面写

if(i<MAXTIME){.........}

编译器在处理这个代码之前会对MAXTIME进行处理替换为1000。

这样的定义看起来类似于普通的常量定义CONST,但也有着不同,因为define的定义更像是简单的文本替换,而不是作为一个量来使用,这个问题在下面反映的尤为突出。

const define 区别

C语言中,通常以#include<stdio.h>开头,以return 0结束。下面给出具体解释。

#开头的是预处理指令,不是C语句的一部分,以#开头的语句,在预处理阶段,由预处理器处理,例如:#include <stdio.h>。

预处理器会将stdio.h文件的内容加入到当前文件的头部,而#define CONST 10则会将文件中的CONST,用10代替(是直接代替)预处理完毕后,才对文件进行编译。

本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.

本文链接:https://www.xibujisuan.cn/98824519.html