C++宏,预处理器,RTTI,typeid与强制类型转换专题.pdfVIP

C++宏,预处理器,RTTI,typeid与强制类型转换专题.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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 指令:该指令原理与条件语句 相同,如果测试为真就执行后面的语句,如果为假则跳过后面的语句。 该指令有两种用法,其一可以用 指令测试某个符号以前是否用 指令定

文档评论(0)

jiupshaieuk12 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档