const和define区别(const和define的区别)
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代替(是直接代替)预处理完毕后,才对文件进行编译。
本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.