详解C语言中的预处理命令

2022-12-12 11:23:39 77 0
魁首哥

目录

  • 一、预处理命令简介
  • 二、宏定义
    • 1、宏定义的定义
    • 2、宏定义的使用
    • 3、宏定义的终止——#undef
  • 三、文件包含

    初学C语言的时候,我们会在开头写下一句话,#include<stdio.h>,这就是预处理命令,下面我们通过这篇文章来了解一下。

    详解C语言中的预处理命令

    一、预处理命令简介

    以#开头、以换行符结尾的行称为预处理指令,常用的有宏定义,文件包括,条件编译。

    二、宏定义

    # define 标识符 单词串

    使用原理:define指令定义一个标识符来代表一个字符串,在源程序中发现该标识符时,都用改字符串替换,以形成新的源程序。

    标识符称为宏名,单词串称为宏体,替换过程称为宏替换。

    1、宏定义的定义

    宏定义可以嵌套,但不能递归

    正确:
    #define R 2.0
    #define Pi 3.1415
    #define L 2*Pi*R
    #define S Pi*R*R
    错误:
    #define M M+1

    2、宏定义的使用

    无参数的宏定义

    #define SIZE 10
    #define A "%d"
    int main()
    {
       int arr[SIZE],i;
       for(i=0;i<SIZE;i++)
          scanf(A,&arr[i]);
       for(i=SIZE-1;i>=0;i++)
          printf(A,arr[i]);
       return 0;
    }
    
    int main()
    {
       int arr[10],i;
       for(i=0;i<10;i++)
          scanf("%d",&arr[i]);
       for(i=10-1;i>=0;i++)
          printf("%d",arr[i]);
       return 0;
    }
    

    有参数的宏定义

    #define SQRT(x)  ((x)*(x))
    #define MAX(x,y)  (((x)>(y))?(x):(y))
    int main()
    {
       float a=1.0,b=2.5;
       a=MAX(a,b)+3;
       printf("sqrt=%d\n",SQRT(a));
       return 0;
    }
    

    宏替换后的新程序

    int main()
    {
       float a=1.0,b=2.5;
       a=(((x)>(y))?(x):(y))+3;
       printf("sqrt=%d\n",((x)*(x)));
       return 0;
    }   fun2(a,b,c);
       return 0;
    }

    到此这篇关于详解C语言中的预处理命令的文章就介绍到这了,更多相关C语言预处理命令内容请搜索我们以前的文章或继续浏览下面的相关文章希望python大家以后多多支持我们!

    收藏
    分享
    海报
    0 条评论
    77
    上一篇:Java数据结构之AC自动机算法的实现 下一篇:Android入门之在子线程中调用Handler详解

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码