• 《黑马程序员》预处理指令(宏定义、条件编译、文件包含)(C语言)


    宏定义的基本概念

    ●  预处理指令都是以#开头

    ●  预处理指令分为三种

    1.宏定义   

    定义格式:#define  宏名   参数

    2.条件编译

    #if 条件语句
        statement1;
    #elif 条件语句
        statement2;
    #else
        statement3;
    #endif       //条件编译结束必须加上此条语句,否则statement3以下的所有语句都将默认为不编译

    3.文件包含

    ●  预处理指令在代码翻译成0和1之前进行

    ●  预处理指令的位置是可以写的

    ●  预处理指令有自己的作用域  

    作用域:从编写指令的那一行开始移植到文件结束

    ●  宏名一般用大写或是以k开头,变量名一般用小写

    代码练习(不带参数的宏)

    1.带参数的宏定义效率比函数高;

    2.宏定义为纯粹的文本替换,不会参与运算,所以在定义又参数的宏定义时,参数和结果都要带上小括号(如上)

    使用宏定义遍历数组内各元素

    #include <stdio.h>
    #define count 5   //不带参数的宏
    int main()
    {
    	int i;
    	int age[count] ={10,84,621,61,24};
    	for(i =0;i <count;i++  ){
    	printf("age[%d] = %d
    ",i,age[i]);
    	}
    	return 0;
    }
    

    代码练习(带参数的宏)

    不使用函数求出变量a + b的值

    #include <stdio.h>
    #define sum(v1,v2) v1+v2           使用宏定义
    int main()
    {
      int a = 10;
      int b = 20;
      int c =sum(a,b);
      printf("sum = %d
    ",c);
      return 0;
    }
    

     条件编译

    定义:一般情况下,源程序中所有的行都参加编译。但有时希望对其中一部分内容只在满足一定条件下才进行编译,即对一部分内容指定编译条件。

    代码练习:

    #include <stdio.h>
    #define A 10
    int main()
    {
    #if (a ==10)
        printf("a = 10
    ");
    #elif (a ==5)
        printf("a = 5
    ");
    #else
      printf("a为其他值
    ");
    #endif
     return 0;
    }
    
  • 相关阅读:
    HTTP协议详情
    HTTP入门
    DNS vs CDN
    TCP/IP协议和互联网协议群
    常用docker镜像
    linq to sql 把数据库连接字段写入配置文件
    微信开发--one.微信平台验证
    项目--ajax上传文件(本次是图片)(.net)
    项目--Repeater嵌套横向显示
    项目--物流查询实现
  • 原文地址:https://www.cnblogs.com/shtz/p/4430626.html
Copyright © 2020-2023  润新知