C语言问题

宏定义有什么作用

宏定义一般是定义一些需要统一修改的表达式或常量。
比如,你程序中需要用到PI=3.1415,那么你将派定义成常量#define PI 3.1415,在程序中就不写3.1415了而写PI即可,编译器自动会帮你替换;
有一天,你觉得这个定义精度需要调整,比如PI=3.1415926会比较好,那么你只需要修改宏定义一处,程序中用到PI的地方就都改了,否则就需要搜寻整个程序将所有3.1415改成3.1415926,这样容易出错、遗漏。
在使用宏定义时需要注意,能加上括号就加上括号,比如#define PI2 3.1415+3.1415就最好定义成#define PI2 (3.1415+3.1415)省得编译程序机械地替换造成实际表达式的错误,比如表达式PI*2,在没有加括号时就变成了:3.1415+3.1415*2而不是(3.1415+3.1415)*2
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-22
具体可参考百度百科宏定义的解释,此处摘抄几个重点。
宏定义是C提供的三种预处理功能的其中一种,这三种预处理包括:宏定义、文件包含、条件编译。
两种类型:
1 不带参数
宏定义又称为宏代换、宏替换,简称“宏”。
格式:
#define 标识符 字符串
其中的标识符就是所谓的符号常量,也称为“宏名”。
预处理(预编译)工作也叫做宏展开:将宏名替换为字符串。
掌握"宏"概念的关键是“换”。一切以换为前提、做任何事情之前先要换,准确理解之前就要“换”。
即在对相关命令或语句的含义和功能作具体分析之前就要换:
2 带参数
除了一般的字符串替换,还要做参数代换
格式:
#define宏名(参数表) 字符串
第2个回答  2013-10-22
书写简便呀
比如
#define uchar unsigned char
就是用uchar来表示unsigned char
书写简单多了
而且在你编译 的时候,编译器会自动替换字符的,把所有的uchar换成unsigned char
同样的功能还有typeof和内联函数inline来自:求助得到的回答
第2个回答  2013-10-22
百度百科搜索“宏定义”
http://baike.baidu.com/view/2076445.htm

c语言常见问题有哪些
1、书写标识符时,忽略了大小写字母的区别。2、忽略了变量的类型,进行了不合法的运算。3、将字符常量与字符串常量混淆。4、忽略了等号与双等号的区别。5、忘记加分号。6、输入变量时忘记加地址运算符。7、输入数据的方式与要求不符。8、输入字符的格式与要求不一致。9、输入输出的数据类型与所用格式...

C语言的问题!
4,下一步是使用浮点参数以符合浮点格式规范,或在程序中的其他位置执行浮点分配。请注意,此操作将导致加载浮点支持。5,最后一步是,当程序以混合语言编写的程序链接时,在FORTRAN库之前指定C库。重新解决了秋天的飞行问题。

C语言的运行出现不了的问题是什么问题??
环境问题:代码在不同的操作系统、编译器或硬件平台上可能存在差异,导致代码无法正常运行。可以检查编译器和操作系统的兼容性,或在特定的环境中运行代码。逻辑问题:代码逻辑存在问题,导致代码无法正确执行。可以检查代码逻辑是否正确,是否存在死循环、递归深度过大等问题。综上,C语言代码运行不出现象可能...

计算机程序c语言面试常见问题
1、C语言程序的基本单位是___A.语句 B.函数 C.程序行 D.字符 答案:B 2、C语言程序由()组成 A.子程序 B.过程 C.函数 D.主程序段程序 答案:C 3、算法的表示方法有___A.自然语言,传统流程图,N-S流程图,伪代码,计算机语言 B.高级语言,汇编语言,机器语言 C.C语言,QBASIC语言,I...

c语言能解决哪些问题
C语言能解决的问题 一、系统开发问题 C语言首先是一种通用编程语言,它可以用于开发各种类型的系统软件和应用程序。例如,操作系统、编译器、驱动等核心组件大多使用C语言开发,因其具有直接访问内存、进行复杂运算和进行底层设备操作的能力。此外,C语言还常被用于开发嵌入式系统,如智能家居控制、工业控制等...

c语言常见问题有哪些?
但C语言中,“=”是赋值运算符,“==”是关系运算符。如:if (a==3)a=b;前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。5.忘记加分号。分号是C语句中不可缺少的一部分,语句末尾必须有分号。a=1 b=2 编译时,编译程序在“a=...

c语言程序 哪里出错了呢 始终运行不出结果
在C语言编程中,若程序始终无法输出结果,可能是因为输入数据的类型与程序调用的数据类型不一致。以scanf函数为例,当使用 scanf("%lf%lf%lf",&a,&b,&c);进行输入时,确实将输入的数字以float类型存储至内存中。然而,程序在读取这些内存时,可能期望以double类型进行解析。这种类型不匹配会导致解析...

求c语言一些常见问题,
但C语言中,“=”是赋值运算符,“==”是关系运算符。如:if (a==3) a=b;前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。5.忘记加分号。分号是C语句中不可缺少的一部分,语句末尾必须有分号。a=1 b=2 编译时,编译程序在“...

c语言面试经常问到的问题有哪些?
c语言面试经常问到的问题有:1、C语言的主要特征是什么?C是一种过程语言。C语言的主要功能包括对内存的低级访问,简单的关键字集和简洁的样式。这些功能使其适用于诸如操作系统或编译器开发之类的系统编程。2、i ++和++i有什么区别?1)表达式“i ++”返回旧值,然后递增i。表达式++i递增该值...

C语言问题编程问题?
int i,j,n=-1;float scores[30],sum=0,temp;printf("请输入n的值(0~30):");while(n<0 || n>30) scanf("%d",&n);if(!n) return 0;for(i=0;i<n;scanf("%f",&scores[i]),sum+=scores[i],i++)printf("请输入学生%d分数:",i+1);printf("%d名学生的平均分为%.1f\\n...

相似回答
大家正在搜