进行编译的时候传宏定义义时,宏名必须用大写

简单讲解C语言中宏的定义与使用
转载 &更新时间:日 15:51:14 & 作者:灵犀
这篇文章主要介绍了C语言中宏的定义与使用,是C语言入门学习中的基础知识,需要的朋友可以参考下
宏定义是预编译功能的一种, 预编译又称为预处理, 是为编译做的预备工作的阶段。处理#开头的指令, 比如拷贝 #include 包含的文件代码,#define宏定义的替换,条件编译等。
使用宏定义的好处:使用宏定义的好处:可提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改。例如 π 这个常量,我们有时候会在程序的多个地方使用,如果每次使用都重新定义,一来比较麻烦,二来容易出错,所以我们可以把 π 做成宏定义来使用。
语法说明:
(1)宏名一般用大写
(2)使用宏可提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改。例如:数组大小常用宏定义
(3)预处理是在编译之前的处理,而编译工作的任务之一就是语法检查,预处理不做语法检查。
(4)宏定义末尾不加分号;
(5)宏定义写在函数的花括号外边,作用域为其后的程序,通常在文件的最开头。
(6)可以用#undef命令终止宏定义的作用域
(7)宏定义可以嵌套
(8)字符串" "中永远不包含宏
(9)宏定义不分配内存,变量定义分配内存。
#define 宏名 内容
#define kArrLen 10 // OC驼峰命名法:首字符为k,其他单词首字符大写
#define ARR_LEN 10 // C语言中的宏命名规范:所有字母大写,单词用下划线分隔
#define PI 3.1415926
我们就可以使用 PI 来代替 3.1415926 即可:
float r = 0.5;
float area = PI * r *
printf("area = %f\n", area);
在程序预编译阶段会把 PI 替换成 3.1415926:
float area = 3.1415926 * r *
宏定义内容很简单,也很好理解,但是有几个如下的注意事项:
1、因为宏定义只是简单的替换,如果宏定义的内容有运算的时候,要把每个变量加上括号,以免影响运算的优先级
比如:#define MUL(A, B) (A * B)
使用方法:
MUL(3 + 5, 5 + 6) //会替换成 3 + 5 * 5 + 6 = 34
我们希望(3 + 5) * (5 + 6),所以定义宏定义的时候应该:
#define MUL(A, B) ((A) * (B))
2、注意宏定义后面没有分号(;),它不是一条语句
3、宏定义是在程序编译前期进行替换,此时程序还没有编译
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具c语言的关键字都用大写还是小写_中华文本库
语言|安徽大学C语言实验平台作业答案_理学_高等教育_教育专区。实验三 C 基本数据...编程:从键盘输入一个字符,如是大写字母,则输出相应小写字母;如是小写字母,则...
C语言作业_电脑基础知识_IT/计算机_专业资料。实验...从键盘输入一个大写字母,要求改用小写字母输出 2. ...字大(Too high)还是小(Too low)。 Enter a ...
c语言经典题目;带答案_IT认证_资格考试/认证_教育专区。大学考试必练,很有用第...为对应的小写字母,如果是小写字母则转 换为对应的大写字母, 如果是数字字符则...
T 84 C语言本身没有输入输出语句T 85#define 和printf 都不是C语句T。 86...T 91 进行宏定义时,宏名必须使用大写字母表示 F 94设指针变量已经指向一个...
C语言成序设计 实现人民币小写金额与大写金额的转换 - 编程实现,输入一个人民币小写金额值,转化为大写金额值输出。先实现基本功能,如输入,可以输出“...
C语言文件练习题含答案_IT认证_资格考试/认证_教育专区。C语言文件练习题含答案...的功能是:从键盘上输入一个字符串, 把该字符串中的小写字母转换 为大写字母,...
C语言课后答案_工学_高等教育_教育专区。第3章 三、编程题 1. 编写程序,...字母则输出对应的小写字母,如果是小写字母则输出相应的大写字母,如果都不是则...
C 编程规范第一章 概述 术语定义 Pascal 大小写 将标识符的首字母和后面连接的每个单词的首字母都大写。可以对三字符或更 多字符的标识符使用 Pascal 大小写。...
用C语言实现人民币大小写转换_计算机软件及应用_IT/计算机_专业资料。第一种: ...C语言程序设计_习题大全... 48页 1下载券 金钱数目小写变大写(C语... 暂无...
2013年计算机二级考试:《C语言》上机试题及答案二_IT认证_资格考试/认证_教育...1 改错题 下列给定程序中,fun 函数的功能是:分别统计字符串中大写字母和小写...以下试题来自:
单项选择题以下关于宏的叙述中正确的是
)A.宏名必须用大写字母表示B.宏替换时要进行语法检查C.宏替换不占用运行时间D.宏定义中不允许引用已有的宏名
为您推荐的考试题库
你可能感兴趣的试题
1A.auto或staticB.extern或autoC.static或externD.auto或register2A.选择B.投影C.连接D.并3A.程序应简单、清晰、可读性好B.符号名的命名只要符合语法C.充分考虑程序的执行效率D.程序的注释可有可无4A.gaeB.gaC.languageD.有语法错误5A.123B.112123C.1234D.乱码
热门相关试卷
最新相关试卷> 问题详情
以下关于宏的叙述中正确的是______。A.宏名必须用大写字母表示B.宏定义必须位于源程序中所有语句
悬赏:0&答案豆
提问人:匿名网友
发布时间:
以下关于宏的叙述中正确的是______。A.宏名必须用大写字母表示B.宏定义必须位于源程序中所有语句之前C.宏替换没有数据类型限制D.宏调用比函数调用耗费时间
为您推荐的考试题库
您可能感兴趣的试题
1有以下程序#include  <stdio.h>main(){   int   i,j;    for(i=3;i>=-1;i-)    {  for(i=1;j<=2;j++)  printf("%d",i+j);     printf("\n");    }}    程序的运行结果是______。A.234   345B.432   543C.23   34   45D.45   34   232有以下程序    #include <stdio.h>    mare()    {  int x=1,y=2,z=3;        if(x>y)        if(y<z) printf("%d",++z);        else    printf("%d",++y);        printf("%d\n",x++);    }    程序的运行结果是______。A.331B.41C.2D.13有以下程序    #include <stdio.h>    main()      { int i=5;         do         { if(i%3==1)             if(i%5==2)          { printf"*%d",i);   }             i++;         } while(i!=0);       printf("\n");    }   程序的运行结果是______。A.*7B.*3*5C.*5D.*2*64有以下程序     #include <stdio.h>     int fun(int a, int b)     {  if(b==0) return a;          else  return(fun(-a,-b));     }     main()     {  printf("%d\n",fun(4,2)); }     程序的运行结果是______。A.1B.2C.3D.4
我有更好的答案
请先输入下方的验证码查看最佳答案
图形验证:
验证码提交中……
每天只需0.4元
选择支付方式
支付宝付款
郑重提醒:支付后,系统自动为您完成注册
请使用微信扫码支付(元)
支付后,系统自动为您完成注册
遇到问题请联系在线客服QQ:
恭喜你被选中为
扫一扫-免费查看答案!
请您不要关闭此页面,支付完成后点击支付完成按钮
遇到问题请联系在线客服QQ:
恭喜您!升级VIP会员成功
提示:请截图保存您的账号信息,以方便日后登录使用。
常用邮箱:
用于找回密码
确认密码:百度题库旨在为考生提供高效的智能备考服务,全面覆盖中小学财会类、建筑工程、职业资格、医卫类、计算机类等领域。拥有优质丰富的学习资料和备考全阶段的高效服务,助您不断前行!
京ICP证号&&
京网文[3号&&
Copyright (C) 2018 Baidu

我要回帖

更多关于 c语言宏定义 的文章

 

随机推荐