黑马程序员_iso入门基础学习_C语言day7
来源:互联网 发布:js动态生成div 编辑:程序博客网 时间:2024/05/26 23:00
一、预处理指令:在将代码翻译成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次,所有调用的函数都共享这个变量。
四、递归:函数自己调用自己,必须有一个明确的返回值
- 黑马程序员_iso入门基础学习_C语言day7
- 黑马程序员_iso入门基础学习_C语言day5
- 黑马程序员_iso入门基础学习_C语言day6
- 黑马程序员_iso入门基础学习_OC语言day1
- 黑马程序员_ios基础入门学习_C语言_day1
- 黑马程序员_ios基础入门学习_C语言day2
- 黑马程序员_ios基础入门学习_C语言day3
- 黑马程序员_ios基础入门学习_C语言day4
- 黑马程序员_C语言基础
- 黑马程序员_C语言基础
- 黑马程序员_C语言学习笔记之基础
- 黑马程序员_C语言学习笔记之指针基础
- 黑马程序员_c语言的基础语法
- 黑马程序员_C语言基础_指针
- 黑马程序员_C语言指针的学习
- 黑马程序员_C语言进制学习
- 黑马程序员_C#基础学习第二季
- 黑马程序员_C语言01_基础总结
- Xcode安装低版本的SDK(在Xcode里下载不了的情况下)
- Starling Feathers Controls Button
- 简洁大方 APC移动电源开箱评测
- Mysql 获取当前时间的前几天和字段中的时间进行比较
- 【android】TextView文本的 “选择文字”“复制” “粘贴” 功能的实现
- 黑马程序员_iso入门基础学习_C语言day7
- iOS中assign、copy 、retain等关键字的含义
- unicode编码转换
- js 判断长度
- MTK6577+Android编译之android
- 两台Ubuntu主机共享文件
- iOS_开源项目合辑
- js实现简单的图片切换
- CentOS RedHat 版本和linux内核版本对应表(2013.12.28更新)