C语言基础:预处理指令(补充内容:递归)

------ android培训java培训、期待与您交流! ----------


预处理指令:

c语言中的预处理指令三种:宏定义,条件编译,文件包含

预处理指令就是将我们的代码翻译成0与1之前所做的指令。

注意点:

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

* 预处理指令的位置可以随便写


预处理指令是有作用于的:从编写指令的哪一行开始,直到代码结束。

宏定义:

宏定义:来定义常量
格式:
#define   宏名
宏名的规范:要用大写,也可以用k开头
#define COUNT  6
int main()
{
    int ages[COUNT] = {1, 2, 3, 4, 5};
    for (int i = 0; i<COUNT; i++)
    {
        printf("%d\n", ages[i]);
    }
    return 0;
}
在编译之前就会将所有的COUNT替换成6。

#undef  取消宏

#undef COUNT
这样从这行开始COUNT就开始失效

带参数的宏定义:
#define SUM(v1, v2)  ((v1) + (v2))  // 这里的括号一定要做好
int main()
{
    int a = 10;
    int b = 11;
    SUM(a, b);
    return 0;
}

条件编译:

条件编译:某段代码满足一定条件才编译。
一般和宏定义配合使用:
#define A 10
int main()
{
#if (A == 10)
    printf("a是10\n");
#elif (A == 5)
    printf("a是5\n");
#else
    printf("a是其他\n");
#endif   //  这里一定要加结束
    return 0;
}
条件编译里的条件不能使用变量。

#ifdef A
#endif
如果定义了A这个宏,就执行之间的代码
#ifndef A
#endif
如果你没定义A这个宏,就执行之间的代码

文件包含:

最主要的是#include
我们的代码经常都是这样以#include <stdio.h>开头
* <>代表系统自带的文件
* 不能循环包含

为了防止多次调用声明文件,防止便一起的负担(重复声明),防止降低编译器效率。
我们可以在头文件加入:
在lisi.h
#ifndef LISI_H
#define LISI_H
头文件内容
#endif
这样在再次调用这个头文件的时候就不会在执行之间的内容,应为第一次调用的时候就定义了宏ABC,这个头文件的内容只会被COPY一次。
这个宏的命名最好是头文件名(大写),防止出现问题。

typedef关键字:

typedef:给类型改名用的,简化
简单来来用一下:
typedef int MyInt;
int main()
{
    MyInt i = 10;  // 这就是定义了一个int类型的变量i
    printf("%d", i);
    return 0;
}

使用场合:基本数据类型、指针、结构体、枚举、指向函数的指针

递归:

递归的意思是,函数自己调用自己

设计一个函数,用来计算b的n次方
#include <stdio.h>
int pow(int b, int n)
{
    if (n == 0) return 1;
    return pow2(b, n-1) * b;
}

------ android培训java培训、期待与您交流! ----------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值