东坡下载:内容最丰富最安全的下载站!
  1. 文件类型库|
  2. 论坛转帖|
  3. 最新更新|
  4. 下载分类|
  5. 下载排行|
  1. 电脑软件
  2. 单机游戏
  3. 安卓游戏
  4. 安卓应用
钱柜娱乐官方网站编程开发VC(VC++) → C语言中#define用法总结

C语言中#define用法总结

相关文章发表评论 来源:本站整理时间:2016/8/11 7:35:17字体大小:A-A+
更多
作者:专题点击:0次评论:0次标签: define
1.简单的宏定义#define 标识符 替换列表(替换列表可以是数,字符串字面量,标点符号,运算符,标识符,关键字,字符常量。注意:替换列表是可以为空的)典型错误:#define N = 100int a[N]; /*这样会成为int a[= 100],这里会处理成为一种标识记号一样*/  #define N 100;int a[N]; /*带分号的定义会成为int a[100;],这是一种很常见的错误*/ #define pin (int*);pin a,b;int* a,b; /*本意是a和b都是int型指针,但是实际上变成int* a,b;a是int型指针,而b是int型变量。这是应该使用typedef来代替define,这样a和b就都是int型指针了。*/  典型的使用方法:使用宏定义我们可以自己根据自己的习惯来定义甚至改变C语言的语法习惯,例如:#define BEGIN {#define END }int main()BEGINprintf ("DEFINE----\n");END 定义一个循环#define LOOP for(;;) 重新定义数据类型#define IT int  2.带参数的宏#define 标识符(x1,x2,x3...xn) 替换列表  (注意:x1,x2,x3..是宏的参数,标识符和其左括弧之间不能有空格)使用方法:#define MAX(x,y) ((x)>(y)?(x):(y))i=MAX(j+k,m-n);替换为:i=MAX((j+k)>(m-n)?(j+k):(m-n));#define SI_EX(n) ((n)%2==0)if(SI_EX(i)) i++;替换为:if(SI_EX((i)%2==0))通过以上例子我们可以看出,标识符带参数(X1,X2,X3.....)在替换时会被替换列表(Y1,Y2,Y3....)对应的替换,但是和顺序无关。  3.宏的特殊单行定义#define A(x) T_##x#define B(x) #@x#define C(x) #xx=1替换为:A(1)------> T_1 (T_##x,##符号是记号粘黏符号,将前后的字符粘黏起来。)B(1)------> '1' ( #@x , #@ 符号会将宏的参数进行字符串字面量化,并且加‘’号)C(1)------> "1" ( #x ,#符号会将宏的参数进行字符串字面量化,并且加""号)  4.define的多行定义define可以替代多行的代码,在每一个换行的时候加上一个"\"#define MAX(X,Y) do { \语句1; \语句2; \/* 注释的写法 */ \} while(0) /* (no trailing ; ) */ \  5.在大规模的开发过程中,特别是跨平台和系统的软件里,define最重要的功能是条件编译。#ifdef WINDOWS............#endif#ifdef LINUX............#endif可以在编译的时候通过#define设置编译环境6.取消宏#undef 标识符  7.条件编译#ifdef XXX…(#else) … #endif  8.预定义宏在C语言中收录了一些有用的宏,这些宏是提供当前编译信息的。__LINE__        被编译文件的行数(整型)__FILE__  被编译文件的名字 (字符型)__DATE__  编译日期 (字符型)__TIME__  编译时间 (字符型)__STDC__  如果编译器接受标准C,那么值为1. (整型)  通常我们在编译的时候我们可以用这些预定义的宏来进行排错,例如:一般情况下,当出现除零的情况时编译器是没有提示的,我们可以自定义一个解决办法。#define CHECKZERO(divisor)\if(divisor==0)\printf("***ATTEMPT TO DIVIDE BY ZERO IN LINE %d of file %s ***\n",__LINE__,__FILE__);\  引用方法CHECKZERO(j);k=i/j;

扩展知识

相关评论

阅读本文后您有什么感想? 已有 人给出评价!

  1. 2791 喜欢喜欢
  2. 2101 顶
  3. 800 难过难过
  4. 1219 囧
  5. 4049 围观围观
  6. 5602 无聊无聊
热门评论
最新评论
昵称:
表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
字数: 0/500 (您的评论需要经过审核才能显示)

钱柜娱乐官方网站

百度360搜索搜狗搜索