- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C宏,预处理器,RTTI,typeid与强制类型转换专题
第 21 章 其他关键字
1、 sizeof 操作符:作用是反回一个对象或类型名的长度,反回值的类型为,长度的单位是字节, 表达式的
结果是一个编译时常量,也就是说可以用于常量可以使用的地方,比如用作函数的参数等。有以下 种语法形式。
;; ;当 操作符用于内置类型名时必须要加括号,比如而
就是错误的。对于 类型或 类型的值执行 操作将恒为。对引用类型执行 操作将反回存放该
引用类型对象所需内存空间的大小。对指针做 操作将反回存放指针所需内存的大小。要反回指针所指对象的
大小,则必须对指针作解引用操作。对数组名作 操作将反回其元素类型的大小乘以数组元素的个数,即反回
整个数组在内存中的字节长度,它不是数组中第一个元素的长度,也不是数组包含的元素个数。所以对数组名作
操作除以数组类型的 操作就可求出数组的实际大小。对于 类型的对象使用 操作符时,长度是固定
的,不因字符串的多少而不同。
、 操作符: 用于为类型名重命名一个别名,比如要为 重命名一个名字为 则可以
这样使用 这里把 重命名为 ,在 后面为要重命名的类型
名后面是要重命名的名字,最后以分号结束。下面举一个容易范错的例子 在这里 的类
型应为 而不是 因为 修饰 的类型,而 是一个指针,所以最后 的类型为
3、 预处理器:预处理器是编译器把代码编译为机器指令之前执行的一个过程,所有的预处理器都是开头,以便与
语句区分开来, 预处理器指令在前面已经用过不少了
3.1、#define 指令:该指令用于符号置换,其格式为 标识符 字符序列。注意该语句不以分号结束。比如
就表示把 置换为,这里要注意的是虽然 看起来和变量一样,但 和变量没有任何关系,
只是一个符号或标志,在程序代码编译前该符号会用一组指定的字符来代替。还要注意的是 并不是一个数
值,而是一个字符串,因此不会进行类型检查。在中最好是用 来声名常量,比如
这样的话 将会始终保持为 类型。语句中的字符序列可以是任意的字符序列,而不仅仅是数字,比如
这样的话在使用 使就会用 来替换掉,当然 这里会是一个未定义的标识
符。
3.2、从程序串删除#define 定义的标志:在 语句中,如果没有为标识符指定置换字符串,标识符就会被一个空
的字符串来代替,也就是说标识符被删除了,比如 表示在程序中该语句后面删除所有的 标识符。
3.3、取消#define 的定义:可以使用 来取消 定义的标识符,比如 表示在 后面的语句中标
识符 的定义被取消了。
3.4、带参数的#define:其格式为 标识符参数列表 置换字符串。比如 表示将
用后面的字符串替换,其中的参数 也可以进行替换,比如在程序中可以这样调用 就会把程序转换为
结果程序输出 ,注意这里的括号不会被输出。参数列表也可以有多个参数,参数间用逗号隔
开即可,比如 如果有调用程序转换为输出。
3.5、#define 可以引起的错误:比如 如果有调用 则该语句会被转换为 这与我们所
希望的 不一致,要解决这个问题就是给参数加上符号,比如
3.6、怎样把预处理指令放在多行上:其方法为使用””续行符符号,该符号应在上一行的最后一个字符。
比如
3.7、#define 使用字符串作为参数:比如 “”如果有语句则会输出字符串 ,但要注意,不能
这样做 ””不能在标志符前加上双引号以试图输出字符串,这样只会输出字符串,
因为程序会把””解释为一个字符串,而不会把它解释为”” 。
、 把参数指定为字符串:其方法是在参数前加上符号””,比如 如果这时有
则程序将会转换为 ””,最后输出字符串 。这里要注意的是该方法只能用于参数,而不能用于其
他地方,比如 这样就是错误的,这里试图用 来代替字符串””,这是不成功的,正确方
法为 “”
4、逻辑预处理器指令:
4.1、逻辑#if 指令:该指令原理与条件语句 相同,如果测试为真就执行后面的语句,如果为假则跳过后面的语句。
该指令有两种用法,其一可以用 指令测试某个符号以前是否用 指令定
您可能关注的文档
最近下载
- 第1课 家居清洁与整理技巧 课件 2023—2024学年苏教版初中劳动技术八年级下册.pptx VIP
- 黑龙江哈尔滨师范大学附属中学2024-2025学年高一上学期期末考试政治试题 含解析.docx VIP
- T_WSJD 18.14—2021_工作场所空气中化学因素测定煤焦油沥青挥发物、焦炉逸散物中苯溶物的称重法.pdf VIP
- 人教版七年级上册英语字帖.pdf VIP
- 湘2017J907 居住建筑节能65%围护结构构造图集.pdf
- 交通局交通安全培训.pptx VIP
- 西南财经大学答辩通用PPT模板.pptx VIP
- 2025年最新人教版八年级(初二)数学上册教学计划及进度表(新课标,新教材).docx
- 《近代文学》教学大纲.pdf VIP
- 2024美妆行业数字化转型白皮书.pdf VIP
文档评论(0)