简述C语言中标识符和关键字的概念与区别 标识符是在程序2113中使用的变量名、函数5261名、标号等统称为标识4102符。除库函数的函数名由系统定义外,其余都由用户1653自定义。C规定,标识符只能是字母(A~Z,a~z)、数字(0~9)、下划线()组成的字符串,并且其第一个字符必须是字母或下划线。在使用标识符时还必须注意以下几点:(1)标准C不限制标识符的长度,但它受各种版本的C语言编译系统限制,同时也受到具体机器的限制。例如在某版本C中规定标识符前八位有效,当两个标识符前八位相同时,则被认为是同一个标识符。(2)在标识符中,大小写是有区别的。例如BOOK和book是两个不同的标识符。(3)标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应的意义,以便阅读理解,作到“顾名思义”。关键字你看一看这一个C语言中,宏替换的替换规则 简单来说:宏定义又称为宏2113代换5261、宏替换,简称“宏”。宏替换是C/C++的预处理中的一4102部分1653,在C++标准中有4条规则来定义替换。规则1:实参替换。本条规则描述带参数的宏的替换过程。对于宏定义中的形参,在替换列表中,如果不是作为#或#的操作数,那么将对应实参完全展开(相当于对实参进行求值),然后将替换列表中的形参替换掉.如果是#或#的操作数,那么不进行替换。规则2:多次扫描。在所有的形参替换为实参后,对结果进行再次扫描,如果发现还有可替换的宏,则进行替换,否则中止。规则3:递归替换抑制。如果在替换列表中发现当前正在展开的宏的名字,那么这里不进行替换.更进一步,在嵌套的替换过程中发现已经替换过的宏的名字,则不进行替换。规则4:递归预处理抑制。如果替换后的结果形成预处理指令,则不执行这条预处理指令。看几个C++标准中的例子:define x 3define f(a)f(x*(a))undef xdefine x 2define g fdefine z z[0]define h g(~define m(a)a(w)define w 0,1define t(a)af(y+1)+f(f(z))%t(t(g)(0)+t)(1);g(x+(3,4)-w)|h 5)&m(f)^m(m);其结果分别是f(2*(y+1))+f(2*(f(2*(z[0]))))%f(2*(0))+t(1);f(2*(2+(3,4)-0,1))|f(2*(~5))&f。C 中预定义标识符与关键字有什么区别
随机阅读
- 贺岁金条是否需要塑封?? 中国金币总公司贺岁金条
- 内淋巴囊减压术疼吗 我妈是梅尼埃病,做了内淋巴囊减压术
- 艾特男朋友的暖心说说 给男友的暖心留言200字
- 为了验证流入流出鱼体的水中 电路图中怎么判断经一个结点电流的流入还是流出?
- 水俣病中毒的金属是镉 痛痛病和水俣病各是什么中毒
- 赛汗塔拉一进门有什么 美丽的故乡作文
- 想问广州本地人,我从华南植物园打的到四海一家吃自助餐,大概要多少钱?多久? 四海一家 搭车
- 歇武镇到共和 乐山有几个镇
- 中国轻纺城布胚市场 中国最大轻纺市场是哪个城市的呢?
- 模板支模自由端高度 计算梁的模板支撑高度是从自然地坪到板底还是从±0到板底。
- 彩超无回声区 多个分隔 体检B超肝内可见多个无回声区
- 大豆的密度比真实值偏
- 人物吃什么可以增加一点属性?要永久的,可以吃多少? 梦幻加永久属性
- 从杭州如家精选河坊街店到武林码头 和家人要去杭州旅游 除了河坊街我想知道杭州还有哪里晚上比较热闹的 不要商场还有西湖
- 河北省行政区域划分 衡水市区行政区域地图高清版
- 问一下我是十级伤残工资6000一个月能有多少陪多少 四会燃气热电冷联产项目
- 水准尺最高 水准仪中:单面尺,双面尺和塔尺三者有什么区别啊?
- 山东大学文艺学考研的书目,推荐看的书 文艺学研究生必读书目
- 欧陆战争4资源破解版 请问手机游戏欧陆战争4有没有破解版的?
- 如何减少胡子的生长速度? 运动可以减少胡子生长