当前位置: 首页 > news >正文

基于node网站毕设代做贴吧友情链接在哪

基于node网站毕设代做,贴吧友情链接在哪,seo推广优化外包公司,淮北做网站电话零、C语言宏定义知多少 C语言的编程过程中经常会用到宏定义,然而如果你只是使用宏定义做一些常量的定义,那么你不是OUT了就是C语言小白。 那么我们在编程过程中,宏定义都有哪些作用呢? 常量定义 可以作为功能代码的开关 防止头文件被重复…

零、C语言宏定义知多少

C语言的编程过程中经常会用到宏定义,然而如果你只是使用宏定义做一些常量的定义,那么你不是OUT了就是C语言小白。

那么我们在编程过程中,宏定义都有哪些作用呢?

  1. 常量定义

  2. 可以作为功能代码的开关

  3. 防止头文件被重复包含

  4. 定义一些通用类型,防止因为平台和编译器不同导致的类型差异,方便移植

  5. 其他高级浮夸用法

  6. 。。。。。。

下面,我们来罗列一下宏定义的各种使用方法,建议收藏。

一、常量定义

//定义π值,代码易读

#define PI 3.1415926

//定义常数,不像const修饰的变量要占用空间 

#define   MAX_LEN    1024  

二、防止头文件重复包含

#ifndef COMDEF_H#define COMDEF_H//头文件内容#endif

三、移植利器:重定义数据类型

typedef  unsigned char      boolean;     
typedef  unsigned long int  uint32;      
typedef  unsigned short     uint16;     
typedef  unsigned char      uint8;      
typedef  signed long int    int32;      
typedef  signed short       int16;       
typedef  signed char        int8;        

四、宏函数

#define  MIN(X, Y)  ((X) < (Y) ? (X) : (Y))   //请注意这里的括号,一定要加,否则会有意外惊喜//宏定义实现一个参数交换#define SWAP(X, Y)    \X = X +Y;     \Y = X - Y;    \X = X - Y; //再来看一下求数组的最大最小值是不是非常简洁maxvalue =minvalue = a[0]; 
for(i = 1; i < MAXLEN; i++) 
{ maxvalue = MAX(maxvalue, a[i]); minvalue =  MIN(minvalue , a[i]); 
} 

五、作为功能开关使用

 //在调试模式下(DEBUG_MODE在之前被定义)才会将代码编译进去#ifdef   DEBUG_MODE     ……#endif//可以根据宏定义KEY_ON的真假来选择代码进行编译#if (KEY_ON)    
……
#else
……
#endif

六、作为字符串或者连字符使用

在宏体中,如果宏体所在标示符中有##,那么在宏体扩展的时候,宏参数会被直接替换到标示符中。如:

#define COMMAND(NAME) {#NAME, NAME ## _command }struct command
{char *name;void (*function)(void);
};//在宏扩展的时候struct commandcommands[] =
{COMMAND (quit),COMMAND (help),…
};//会被扩展成:struct commandcommands[] =
{{ "quit",quit_command },{ "help",help_command },…
};

这样就节省了大量时间,提高效率。

七、协助调试的宏定义LINE 及 FILE

line指令可以改变它的值,简单的讲,编译时,它们包含程序的当前行数和文件名。

DATE宏指令含有形式为月/日/年的串,表示源文件被翻译到代码时的日期。

TIME 宏指令包含程序编译的时间。时间用字符串表示,其形式为 时: 分:秒

STDC 宏指令的意义是编译时定义的。一般来讲,如果STDC已经定义,编译器将仅接受不包含任何非标准扩展的标准C/C++代码。如果实现是标准的,则宏STDC含有十进制常量1。如果它含有任何其它数,则实现是非标准的。

#define MAINVER 2  
#define SUBVER1 0  
#define SUBVER2 1  #define STR(s)     #s   #define VERSION(a,b,c) "System V" STR(a) "." STR(b) "." STR(c) "."__DATE__//"System V2.0.1.2017.9.13"

八、其他调试用特殊宏定义

//-- 例1.作为块注释,非常的好用,对于一些编辑器,还会自动变灰,方便阅读
#if 0
/*your code, want not use*/
#endif//-- 例2.得到指定地址上的一个字节或字
#define  MEM_B(x)  (*((byte *) (x)))
#define  MEM_W(x)  (*((word *) (x)))//-- 例3.得到一个成员变量(field)在结构体(struct)中的偏移量
#define  FPOS(type, field) ((dword) &((type *) 0)->field)//-- 例4.得到一个结构体中成员变量(field)所占用的字节数
#define  FSIZ(type, field) sizeof(((type *) 0)->field)//-- 例5.按照LSB格式把两个字节转化为一个Word
// 传入的参数需要为数组哦
#define  FLIPW(ray) ((((word) (ray)[0]) * 256) + (ray)[1])//-- 例6.按照LSB格式把一个Word转化为两个字节
#define  FLOPW(ray, val) (ray)[0] = ((val) / 256); (ray)[1] = ((val) & 0xFF)//-- 例7.得到一个变量的地址(word宽度)
#define  B_PTR(var) ((byte *) (void *) &(var))
#define  W_PTR(var) ((word *) (void *) &(var))//-- 例8.得到一个字的高位和低位字节
#define  WORD_LO(xxx) ((byte) ((word)(xxx) & 255))
#define  WORD_HI(xxx) ((byte) ((word)(xxx) >> 8))//-- 例9.返回一个比X大的最接近的8的倍数
#define  RND8(x)  ((((x) + 7) / 8 ) * 8)//-- 例10.将一个字母转换为大写
#define  UPCASE(c) (((c)>='a'&&(c) <= 'z') ? ((c) - 0x20) : (c))//-- 例11.判断字符是不是10进值的数字
#define  DECCHK(c) ((c) >= '0' && (c) <= '9')//-- 例12.判断字符是不是16进值的数字
#define  HEXCHK(c)                     \(((c) >= '0' && (c) <= '9') || \((c) >= 'A' && (c) <= 'F')  || \ ((c) >= 'a' && (c) <= 'f'))//-- 例13.防止溢出的一个方法
#define  INC_SAT(val) (val = ((val)+1 > (val)) ? (val)+1 : (val))//-- 例14.返回数组元素的个数
#define  ARR_SIZE(a) (sizeof((a)) / sizeof((a[0])))
http://www.tj-hxxt.cn/news/104085.html

相关文章:

  • 贵阳网站推广有几家seo网页优化服务
  • vb .net网站开发上海单个关键词优化
  • 免费开源网站系统有哪些东莞百度快速排名优化
  • 网站开发的网课在哪产品营销推广的方案
  • 网站生成二维码网络推广网上营销
  • 北京网站建设推荐华网天下百度推广介绍
  • 有几家公司如何建设网站天津网站快速排名提升
  • 自己创造网站平台南宁百度seo排名公司
  • 免费字体设计 常见网站网络推广属于什么专业
  • 广告公司网站设计方案新闻头条最新消息10条
  • 公司网站域名查询苏州seo建站
  • 网站建设和网络推广外包小视频网站哪个可以推广
  • 株洲做网站需要多少钱搜索引擎的两个基本方法
  • 长春网站建设外包湖南疫情最新消息
  • 大连做网站 选领超科技谷歌优化排名公司
  • 亚马逊雨林生物seo搜索优化培训
  • 网站在线客服软件百度网站排名seo
  • 算卦网站哪里可以做宁波seo在线优化方案公司
  • 北京比较好的网站建设公司河南网站建设优化技术
  • 做网站的网页用什么软件好关键词seo排名优化推荐
  • 先做网站再备案吗网上教育培训机构哪家好
  • 哪个浏览器不限制访问任何网站的百度风云榜官网
  • wordpress 调用参数宁波seo关键词如何优化
  • app和网站开发区别北京seo全网营销
  • 餐厅装修设计公司网站西安百度推广联系方式
  • 濮阳武志勇长沙网站seo优化排名
  • 个人网站是啥满足seo需求的网站
  • 学院网站建设方案seo商学院
  • wordpress前台插件北京seo公司公司
  • 西安哪家网站做的好新浪博客seo