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

网站开发企业排名珠海企业网站建设服务

网站开发企业排名,珠海企业网站建设服务,wordpress 书架,网站群建设的目的意义零、C语言宏定义知多少 C语言的编程过程中经常会用到宏定义#xff0c;然而如果你只是使用宏定义做一些常量的定义#xff0c;那么你不是OUT了就是C语言小白。 那么我们在编程过程中#xff0c;宏定义都有哪些作用呢? 常量定义 可以作为功能代码的开关 防止头文件被重复…零、C语言宏定义知多少 C语言的编程过程中经常会用到宏定义然而如果你只是使用宏定义做一些常量的定义那么你不是OUT了就是C语言小白。 那么我们在编程过程中宏定义都有哪些作用呢? 常量定义 可以作为功能代码的开关 防止头文件被重复包含 定义一些通用类型防止因为平台和编译器不同导致的类型差异方便移植 其他高级浮夸用法 。。。。。。 下面我们来罗列一下宏定义的各种使用方法建议收藏。 一、常量定义 //定义π值代码易读 #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.hkea.cn/news/14424088/

相关文章:

  • 凌美上海建设工程网站网站建设报价分析
  • 聊城网站改版青岛百度seo排名
  • 广州 科技网站建设公司北京工商注册公司
  • 网站如何规范的排版编辑一个网站需要哪些东西
  • 培训校园网站建设简报达州市住房和城乡建设局网站
  • 医院网站建设医生需要做什么手机应用商店下载安装
  • 推荐家居企业网站建设响应式网站建设论文
  • wordpress 提速插件南宁网站seo
  • 网站建设发好处wordpress邮箱如何解析
  • 郑州网站建设喝彩设计开发网站
  • 做的网站老被攻击广州11个区排名
  • 企业营销型网站建设规划中华机械网
  • 建一个网站的手机电脑版百度推广青岛公司
  • 福州网站建设专业定制山东潍坊建设银行招聘网站
  • 惠州市住房和城乡规划建设局网站营销型企业网站建设策划
  • 公司最近想做个网站怎么办wordpress占用CPU高
  • 解析网站制作个人主页在哪里
  • 织梦网站怎么做索引地图营销助手
  • 好的做网站33ee紧急页面访问升级
  • 小白如何自己做网站国外网站排行
  • 网站建设能用手机制作吗信用中国 网站 支持建设
  • 字体设计学习网站宜昌网站模板
  • 济南网站建设内容全部浏览器下载大全
  • 福建亨立建设集团有限公司网站注册安全工程师报名条件和要求
  • dede 网站名称 空的wordpress的windows
  • 有经验的宁波网站建设关于推广网站的标题
  • 关键词优化的作用百度seo培训课程
  • 网站建设怎么样工作室如何建设网站内容
  • wordpress 被黑后seo好wordpress主题
  • 只放一个图片做网站提升自己建设自己的网站