直接按照系统指定的目录检索头文件"" ...">
美文网首页
预处理和宏定义

预处理和宏定义

作者: arkliu | 来源:发表于2022-10-10 21:01 被阅读0次

include

<font color="red"> #include<>和#include "" </font>的区别
<> 直接按照系统指定的目录检索头文件
"" 先在当前.c文件所在目录查找,如果找不到在按照系统指定的目录检索头文件

#include<>通常用于包含库函数的头文件
#include "" 通常用于包含自定义的头文件

宏定义

#define PI 3.14

int r = 4;
printf("area = %f\n", PI * r *r);
// 预处理的时候上面的代码变为 printf("area = %f\n", 3.14 * r *r);

#define TEST(A,B)  A*B
#define TEST2(A,B) (A) * (B)

int a = TEST(2,4);
// int a = 2 * 4;
printf("a = %d\n", a); //a = 8
    
int b = TEST(1+1, 2);
// int b = 1+1*2;
printf("b = %d\n", b); //b = 3

int c = TEST2(1+1, 2);
printf("c = %d\n", c); //c = 4


#define MAX(a,b) (a) > (b) ? (a) : (b)
#define MAX2(a,b,c) (a) > (MAX(b,c)) ? (a) :(MAX(b,c))
printf("max(1, 2) = %d\n", MAX(1,2)); //max(1, 2) = 2
printf("max2(1, 2, 3) = %d\n", MAX2(1,2,3)); //max2(1, 2, 3) = 3

条件编译

#define D1
#define TEST3 1

 #ifdef D1
       printf("d1 define..\n");
#else
       printf("d1 not define..\n");
#endif

#ifndef D1
        printf("d1 not define..\n");
#else
        printf("d1 define..\n");
#endif

#if TEST3
        printf("TEST3 is true..\n");
#elif
        printf("TEST3 is false..\n");
#endif

防止头文件重复包含

#ifndef TEST_H
#define TEST_H
    // .h头文件中的函数声明
#endif

日志打印

//__FILE__是文件名称  __LINE__是当前行
printf("file = %s  line = %d\n", __FILE__, __LINE__);

相关文章

  • 10/19

    今天老师讲了预处理命令,宏定义分为无参宏定义,带参宏定义和条件编译。宏定义包括宏名和宏展开,和函数相比预处理有很多...

  • C语言预处理指令

    预处理指令 宏定义 宏定义会在预处理的时候, 用宏定义的值来替换宏的名称 格式: #define 宏名称 宏值 应...

  • 10.19

    今天主要讲了预处理 主要是预处理的概念和预处理命令的使用 包括宏定义“文件包含”处理条件编译等等宏定义是老师重...

  • c高级自我学习(1)

    1 编译预处理和宏定 #undef指令删除前面定义的宏定义。 无参宏定义:宏名中没有参数。 1,宏定义中宏名用来表...

  • C语言 预处理指令

    一 .宏定义 #define 宏定义宏定义会在预处理的时候,用宏定义的值来替换宏的名称 定义格式 "#define...

  • 预处理和宏定义

    include #include<>和#include "" 的区别<> 直接按照系统指定的目录检索头文件"" ...

  • 编程基础

    C语言 #define定义的宏和const定义的常量有什么区别? defined定义宏的指令,程序在预处理阶段将用...

  • iOS技术基础

    一、define定义的宏和const定义的常量有什么区别? define定义宏的指令,程序在预处理阶段将用#def...

  • 2017年10月19日学校总结

    今天学习了预处理指令,预处理指令包括宏定义,条件编译,文件包含 宏定义,不占用内存空间。 #define p 3....

  • 02-预处理指令(宏定义 条件编译 文件包含)、typedef、

    目录 1 预处理指令2 typedef3 typedef和宏定义的区别4 const关键字5 宏定义(define...

网友评论

      本文标题:预处理和宏定义

      本文链接:https://www.haomeiwen.com/subject/kyoyartx.html