[掌握]预处理指令 文件包含 [熟悉]宏定义 一、是什么? 是一个替换代码的预处理指令
二、有什么用? 可以在编译之前进行代码替换
三、怎么用? 开始替换:#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的的时候,采用冒泡的方式排序,否则采用选择排序。
将排序前和排序后的数组打印出来
|