A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© flairamyz 中级黑马   /  2015-11-15 22:56  /  745 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

[掌握]预处理指令
文件包含
[熟悉]宏定义
一、是什么?
是一个替换代码的预处理指令

二、有什么用?
可以在编译之前进行代码替换

三、怎么用?
开始替换:#define 被替换内容 替换成的内容
#define kLength 6
结束替换:#undef 被替换内容。之后宏定义失效

四、什么时候用?
当需要用一些重复性代码或简单的函数运算时,可以用宏定义提高效率

五、有什么特点
1.命名尽量以大写或者小写k开头,便于区分
2.被双引号的引起来的不会被替换
3.宏定义只会做代码替换,不关注任何逻辑,容易出现优先级错误(加括号解决)
4.替换可以设置作用域,如果不设置,作用域则是这行代码出现到代码的最后一行

[了解]条件编译
一、是什么?
是一个根据条件编译代码的预处理指令

二、有什么用?
可以让一段代码只能在满足条件才编译,提高编译效率

三、怎么用?
#ifdef  #elif   #elese ,#endif
#ifdef #ifndef

四、什么时候用?
当一些代码只需要在一定条件下编译时

五、有什么特点?                                                                                                                                                                                                                                                                                                                       
1.条件编译不能访问需要编译后才能执行的代码
2.条件编译不需要用大括号,所以必须用结束标识,否则涵盖下面的所有代码
3.条件编译一般跟宏定义配合使用,防止重复包含以及交叉包含

32个关键字
file:///var/folders/t0/rmtcrw9j6wq924w545wht0dm0000gn/T/WizNote/48173559-8094-477f-ae09-19fe90ecee35/index_files/16370018.png


typedef
一、是什么?
C语言的一个关键字

二、有什么用?
可以给一个数据类型取一个别名,方便使用

三、怎么用?
定义:typedef 类型 别名
如:typedef long int Lint;
long int a = 5与Lint = 5二者等效

四、什么时候用?
当希望给一个类型取一个别名时(类型比较复杂等),可以用,方便理解掉哟过

五、有什么特点?
1.定义位置没有限制,函数内外都可以
2.作用域为定义位置开始至所处作用域结束,类似于变量
3.可以用于任何数据类型
4.别名具有数据类型的含义,这是跟宏定义最大区别

file:///var/folders/t0/rmtcrw9j6wq924w545wht0dm0000gn/T/WizNote/48173559-8094-477f-ae09-19fe90ecee35/index_files/5916064.png







file:///var/folders/t0/rmtcrw9j6wq924w545wht0dm0000gn/T/WizNote/48173559-8094-477f-ae09-19fe90ecee35/index_files/8353079.png
file:///var/folders/t0/rmtcrw9j6wq924w545wht0dm0000gn/T/WizNote/48173559-8094-477f-ae09-19fe90ecee35/index_files/15159914.png


函数分两种:
内部函数和外部函数
如果一个函数前面什么都不加,表示这个默认是外部函数,加不加extern效果都一样

如果前面加了static,就表示这是一个内部函数,意思是这个函数只能被本文件访问别的文件就算生命了也不能访问

file:///var/folders/t0/rmtcrw9j6wq924w545wht0dm0000gn/T/WizNote/48173559-8094-477f-ae09-19fe90ecee35/index_files/6605151.png

file:///var/folders/t0/rmtcrw9j6wq924w545wht0dm0000gn/T/WizNote/48173559-8094-477f-ae09-19fe90ecee35/index_files/10353112.png


局部变量一旦被static修饰,那么它只会在函数执行第一次时创建
如果函数再次执行,其将会复用之前创建的变量,同时这个变量的生命周期直到程序结束



file:///var/folders/t0/rmtcrw9j6wq924w545wht0dm0000gn/T/WizNote/48173559-8094-477f-ae09-19fe90ecee35/index_files/6958098.png



file:///var/folders/t0/rmtcrw9j6wq924w545wht0dm0000gn/T/WizNote/48173559-8094-477f-ae09-19fe90ecee35/index_files/9949744.png



goto



file:///var/folders/t0/rmtcrw9j6wq924w545wht0dm0000gn/T/WizNote/48173559-8094-477f-ae09-19fe90ecee35/index_files/15059072.png




file:///var/folders/t0/rmtcrw9j6wq924w545wht0dm0000gn/T/WizNote/48173559-8094-477f-ae09-19fe90ecee35/index_files/5731187.png
file:///var/folders/t0/rmtcrw9j6wq924w545wht0dm0000gn/T/WizNote/48173559-8094-477f-ae09-19fe90ecee35/index_files/10369919.png



递归
一、是什么?
是指在函数的定义中使用函数自身的方法,说白了就是一个函数自己调用自己

二、有什么用?
实现一些反复执行的操作

三、怎么用?

四、什么时候用?
当有一些反复的操作,但没有告知明确次数的时候

五、有什么特点?
可以用循环实现递归的所有操作

递归能够正常结束的必要条件是:
必须在一个节点能返回一个确切的值,不再继续调用
file:///var/folders/t0/rmtcrw9j6wq924w545wht0dm0000gn/T/WizNote/48173559-8094-477f-ae09-19fe90ecee35/index_files/12622057.png



file:///var/folders/t0/rmtcrw9j6wq924w545wht0dm0000gn/T/WizNote/48173559-8094-477f-ae09-19fe90ecee35/index_files/2974839.png

题目:
在order.c里面实现冒泡排序和选择排序。
在main.c里面定义一个数组,并调用order.c里面的两种方法实现数组从小到大的排序
其中,定义了宏定义 MAOPAO的的时候,采用冒泡的方式排序,否则采用选择排序。

将排序前和排序后的数组打印出来












0 个回复

您需要登录后才可以回帖 登录 | 加入黑马