黑马程序员_iso入门基础学习_C语言day7

来源:互联网 发布:js动态生成div 编辑:程序博客网 时间:2024/05/26 23:00

---------------------- IOS培训.期待与您交流! ----------------------


一、预处理指令:在将代码翻译成01之前执行的命令

1.预处理指令都是以#开头

2.预处理指令位置可以随便写

3.预处理指令的作用域,从编写指令的那一行到文件结束

4.预处理指令包括3种:

4.1 宏定义:   只是将代码替换,并不会计算

无参数的宏定义:#define 宏名(大写) 值:将宏名替换成值

带参数的宏定义:#define 宏名(参数) (参数)   文本替换

注意:带参数的宏定义要将参数和结果都加上括号

#undef 宏名   结束宏定义

4.2条件编译:有条件的编译代码,一般参与判断的是宏

#if

#elif

#else

#endif  如果endif不加,else后面的代码全部不被编译,包括大括号

#if defined A  等价于  #ifdef A    如果定义了宏A

#if !denfined A 等价于 #ifndef A   如果没有定义宏A

4.3文件包含

#include <系统自带> "自定义"

防止重复的包含复制:

#ifndef   XXX_H     宏名为头文件的文件名

#define  XXX_H

函数声明

。。。。

。。。。

#endif


二、typedef :给类型取新的类型名称,一般用于比较复杂的类型名,比如结构体,枚举类型,指针类型

typedef struct Person

{

int age;

}  Sperson;   定义了一个结构体类型Person,并且取新名称

Sperson。


typedef enum sex

{

男,女

} Msex;    定义了一个枚举类型sex,取新名称为Msex


三、extern和static:

针对函数:

extern定义和声明外部函数:默认都是外部函数,所以可以省略,同一个项目,不同文件的函数不可重名

static定义和声明内部函数:不能直接调用,不能省略。不同文件的内部函数可以重名


针对变量:

全局变量:

1.外部变量:全局变量默认都是外部变量,不同文件重复定义一个重名的变量都是同一个变量。

2.内部变量:只能本文件中访问,不同文件的同名变量,不是同一个变量

extern:声明一个外部变量,不可省略

static:定义一个内部变量


局部变量:

static修饰局部变量唯一的作用就是改变局部变量的生命周期,直到程序结束才会被释放。但是不会改变局部变量的作用域。如果函数内部的局部变量,那么调用这个函数N次,所有调用的函数都共享这个变量。



四、递归:函数自己调用自己,必须有一个明确的返回值


0 0