部分c高级笔记.docxVIP

  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文档。上传文档
查看更多
第 页 PAGE \* Arabic 1 #include 直接按标准目录搜索 “” 先在当前目录搜索,再搜索标准目录 处理过程:预编译时,用被包含文件的内容取代该预处理命令,再对“包含”后的文件作一个源文件编译 #if 、 #else #elif 、 #endif 条件编译指令中最常用的或许是#if,#else,#elif和#endif #if的一般形式是: #if constant-expression ? Statement sequence #endif #endif标记#if块的结束 例子: #ifdef COMPUTER_A #define INTEGER_SIZE 16 #else # define INTEGER_SIZE 32 #endif #else指令的作用与C语言的else相似,#if指令失败时它可以作为备选指令 #else既是标记#if块的结束,也标记#else块的开始 每个#if只能写一个#endif匹配 #ifdef --如果已定义 #ifdef的一般形式如下: #ifdef 标识符 程序段1 #else 程序段2 #endif 当所指定的标识符已经被#define命令定义过,则在程序编译阶段只编译程序段1,否则编译程序段2。 #ifndef --如果未定义 #ifdef的一般形式如下: #ifndef 标识符 程序段1 #else 程序段2 #endif 作用是当所指定的标识符未被#define命令定义过,则在程序编译阶段只编译程序段1,否则编译程序段2。它只是第一行与第一种形式不同。这种形式与第一种形式的作用相反#ifndef #if --如果已定义 #if 的一般形式如下: #if 常量表达式 程序段1 #else 程序段2 #endif 如常量表达式的值为真(非0),则对程序段1 进行编译,否则对程序段2进行编译 #ifdef 和 #if defined 的区别在于,后者可以组成复杂的预编译条件,比如 #if defined (AAA) defined (BBB) xxxxxxxxx #endif #if defined (AAA) || VERSION 12 xxxxxxxxx #endif 而#ifdef 就不能用上面的用法,也就是说,当你要判断单个宏是否定义时#ifdef 和 #if defined 效果是一样的,但是当你要判断复杂的条件时,只能用 #if #error 使用defined #line #pragma ?#和## 预宏定义 #error指令强制编译程序停止编译, 主要用于程序调试 #error指令的一般形式是 #error error-message 注意: 宏串error-message不用双引号包围 ?可以自定义错误内容 defined 确定是否定义宏名字的方法 defined操作符的一般形式如 defined macro-name define与#ifdef: #if defined MY 或 #ifdef MY 感叹号”!”来反转相应的条件 ?#if !defined DEBUG ? Printf(“Final Version!\n”); #endif __FILE__ C语言中的__FILE__用以指示本行语句所在源文件的文件名,举例如下(test.c): #include stdio.h int main() { printf(%s\n,__FILE__); } 在gcc编译生成a.out,执行后输出结果为: test.c 在windows的vc6.0下编译执行结果为: c:\documents and settings\administrator\桌面\test.c __LINE__ C语言中的__LINE__用以指示本行语句在源文件中的位置信息,举例如下: #include stdio.h main() { printf(%d\n,__LINE__); printf(%d\n,__LINE__); printf(%d\n,__LINE__); }; 该程序在linux用gcc编译,在windows的vc6.0下编译都可以通过,执行结果都为: 7 8 9 还可以通过语句#line来重新设定__LINE__的值,举例如下: #include stdio.h #line 200? //指定下一行的__LINE__为200 main() { printf(%d\n,__LINE__); printf(%d\n,__LINE_

文档评论(0)

ccccccxx + 关注
官方认证
文档贡献者

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

认证主体临沂冉通信息技术有限公司
IP属地山东
统一社会信用代码/组织机构代码
91371300MA9576790T

1亿VIP精品文档

相关文档