函数的传参,递归函数,宏定义,头文件

函数的传参,递归函数,宏定义,头文件_第1张图片

数组传递中,形参和实参操作的是同一个数组 

函数的传参,递归函数,宏定义,头文件_第2张图片

1.带参宏

#define PRINTF(x,y,z) do{\

           printf("x = %d\n",x);\

           printf("y = %d\n",y);\

           printf("z = %d\n",z);\

}while(0)

\是连接字符,宏定义只能写成一行,\可以把两行连成一行

带参宏与函数的区别:
            1.函数有参数类型、返回值、传参的概念
            2.带参宏没有参数类型、返回值、传参的概念
            3.带参宏是在程序编译阶段加载到程序中 
                带参宏可能改变运算符的优先级,记得加括号
            4.函数是在程序运行阶段加载到程序中
            5.带参宏会使代码体积增大
            6.函数不会使代码体积增大    
            7.带参宏执行效率高
            8.函数执行效率低 

注:当简短的代码想要封装成模块的代码可以使用带参宏

2.头文件包含
    #include 
    在预处理阶段将stdio.h头文件展开到文件中
    在/usr/include目录下查找stdio.h 

    #include "stdio.h"
    在当前目录下查找stdio.h,如果当前目录找不到则在系统目录/usr/include目录下查找头文件

    头文件以.h结尾:
        1.头文件中存放宏定义 
        2.头文件中存放声明的全局变量和全局函数
        3.头文件中存放自定义的数据类型 

    项目工程根据功能划分成不同的文件
      最好每个.c文件都有一个.h文件
    
    jisuanqi--------src ----- main.c         主函数的实现  
                |            |--- add.c          加法相关的函数接口的实现
                |            |--- sub.c          减法相关的函数接口的实现             
                |            |--- mul.c          乘法相关的函数接口的实现            
                |            |--- div.c          除法相关的函数接口的实现
                |
                |----include ---- add.h          add.c中用到的数据类型的定义、宏定义、全局变量的声明、全局函数的声明     
                            |--- sub.h          sub.c中用到的数据类型的定义、宏定义、全局变量的声明、全局函数的声明 
                            |--- mul.h          mul.c中 用到的数据类型的定义、宏定义、全局变量的声明、全局函数的声明 
                            |--- div.h          div.c中用到的数据类型的定义、宏定义、全局变量的声明、全局函数的声明

 

你可能感兴趣的:(c语言)