c语言之条件编译技巧与示例分析.docxVIP

  • 2
  • 0
  • 约1.04千字
  • 约 3页
  • 2022-03-01 发布于浙江
  • 举报
PAGE PAGE 1 c语言之条件编译技巧与示例分析 (一)条件编译方法 条件编译是通过预编译指令来实现的,主要方法有: 1、#if, #elif, #else, #endif #if条件1 代码段1 #elif 条件2 代码段2 。.. #elif 条件n 代码段n #else 代码段 n+1 #endif 即可以设置不同的条件,在编译时编译不同的代码,预编译指令中的表达式与C语言本身的表达式基本一至如规律运算、算术运算、位运算等均可以在预编译指令中使用。之所以能够实现条件编译是由于预编译指令是在编译之前进行处理的,通过预编译进行宏替换、条件选择代码段,然后生成最终的待编译代码,最终进行编译。 #if的一般含义是,假如#if后面的常量表达式为true,则编译它所掌握的代码,如条件1成立时就代码段1,条件1不成立再看条件2是否成立,假如条件2成立则编译代码段2,否则再依次类推推断其它条件,假如条件1-N都不成力则会编译最终的代码段n+1. 2、#ifdef, #else, #endif或#ifndef, #else, #endif 条件编译的另一种方法是用#ifdef与#ifndef命令,它们分别表示“假如有定义”及“假如无定义”。有定义是指在编译此段代码时是否有某个宏通过 #define 指令定义的宏,#ifndef指令指找不到通过#define定义的某宏,该宏可以是在当前文件此条指令的关面定义的,也可以是在其它文件中,但在此指令之前包含到该文件中的。 #ifdef的一般形式是: #ifdef macro_name 代码段1 #else 代码段2 #endif 或 #ifdef的一般形式是: #ifndef macro_name 代码段2 #else 代码段1 #endif 这两段代码的效果是完全一样的。 3、通过宏函数defined(macro_name) 参数为宏名(无需加“”),假如该macro_name定义过则返回真,否则返回假,用该函数则可以写比较简单的条件编译指令如 #if defined(macro1) || (!defined(macro2)

文档评论(0)

1亿VIP精品文档

相关文档