Skip to content

Latest commit

 

History

History
99 lines (73 loc) · 2.1 KB

06.md

File metadata and controls

99 lines (73 loc) · 2.1 KB

编译预处理

预处理指令

#include 引用各种函数库 #define 定义常用的宏

条件编译

根据表达式的结果来决定要编译的内容 #if #else #elif #endif

// 根据变量或宏等是否定义来决定要编译的内容 #ifdef #ifndef

#include

// 1)两种形式:
#include <stdio.h>  // 到配置目录中找
#include "stdio.h"  // 从当前目录开始找,无则到配置目录中找

// 2)文件包含允许嵌套
// 文件A包含了文件B,文件B又包含了文件C,最终文件B和C都会被引入A文件

#define

宏定义,用一个标示符来表示一个字符串,这个字符串可以使常量、变量或表达式。在宏调用中,将用该字符串替换宏名。
#include <stdio.h>
// 1) 无参数宏
#define PI 3.14
#define M (a+b+c)/2.0
int main()
{
  int a = 1, b = 2, c = 3;
  printf("面积为%f", PI*2*2);
  printf("%f", M);
}
// 2)带参数宏
#define f(x) x*x+3*x
#define Sum(a,b,c) a=b*c;b=c*a;a=b*c

printf("%d", 3*f(2));

PS:非值传递,而是传递形参字符

条件编译

#if (常量表达式) =====> 注意常量,非变量 仅当表达式为真,则编译它与 #endif 之间的代码

#include<stdio.h>

#define debug = 0
#define beta = 1
#define status = 1
int main()
{
#if (status == debug)
    printf("程序调试中\n");
#elif (status == beta)
    printf("程序测试中\n");
#else
    printf("欢迎使用正式版!\n");
#endif
}

#ifdef 如果有定义 (if define) #ifndef 如果没定义 (if not define)

#ifndef PI
    define PI 3.14
#endif

#ifdef 和 #ifndef 主要是用来避免重定义

额外内容: 使用CL.exe编译c程序