在宏定义#define PI 3.14159中,宏名PI代替的是一个() A.常量 B.单精度

在宏定义#define PI 3.14159中,宏名PI代替的是一个()
A.常量
B.单精度数
C.双精度数
D.字符串
这题选什么?为什么?

宏定义定义的是常量,是没有数据类型的。追答

宏定义是C提供的三种预处理功能的其中一种,这三种预处理包括:宏定义、文件包含、条件编译

宏定义又称为宏代换、宏替换,简称“宏”。
格式:
#define 标识符 字符串
其中的标识符就是所谓的符号常量,也称为“宏名”。
预处理(预编译)工作也叫做宏展开:将宏名替换为字符串。
掌握"宏"概念的关键是“换”。一切以换为前提、做任何事情之前先要换,准确理解之前就要“换”。
即在对相关命令或语句的含义和功能作具体分析之前就要换:
例:
#define PI 3.1415926
把程序中出现的PI全部换成3.1415926
说明:
(1)宏名一般用大写
(2)使用宏可提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改。例如:数组大小常用宏定义
(3)预处理是在编译之前的处理,而编译工作的任务之一就是语法检查,预处理不做语法检查。
(4)宏定义末尾不加分号;
(5)宏定义写在函数的花括号外边,作用域为其后的程序,通常在文件的最开头。
(6)可以用#undef命令终止宏定义的作用域
(7)宏定义不可以嵌套
(8)字符串" "中永远不包含宏
(9)宏定义不分配内存,变量定义分配内存。
(10)宏定义不存在类型问题,它的参数也是无类型的。

追问

那答案怎么选D

那答案怎么选D?

追答

那么做道题作为一个类型吧,题意我理解错了!不好意思啊。
它可能是指3.1415926这个是字符串。
只要理解宏定义,这个题作为经典题去记,以后应该就不会错了吧?

追问

感觉要是选字符串的话,没有那双引号,感觉怪怪的

字符串要有双引号的

追答

别这样认为。因为宏定义是不同于字符串的定义的,你需要记住,宏定义是没有类型的。等到你学习嵌入式系统开发的时候理解会更深的。你也可以去百度一下宏定义这个东西,现代C单单从书本上学习是不够的。需要你从实际中时间总结。因为编译器的不同,有些东西还是不同的。在这条路上走的远点才能理解更深。

追问

好吧!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-07
D 宏定义是在预编译阶段,把给定的符号常量代替的字符串把源程序中的该符号进行字符串的替换也就是简单的文本替换,不检查语法错误
第2个回答  2018-10-19
#define 标识符 字符串 ;
书上的定义
第3个回答  2015-06-07
c.追问

答案选D

追答

那你的双引号呢?

追问

这题本来就没双引号

追答

那就错了,字符串是引号

追问

难道答案错了?

第4个回答  2015-06-07
a追答

好像是这样的,对吗,课本

追问

答案选D

我不知道为什么?

追答

那常量是怎么定义的,这是什么语言,翻翻书

追问

c语言

追答

没等号 选d对

不记得了,十多年了

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网