C语言由多个 .c 文件和 .h文件组成
.c :C语言源代码文件
.h :C语言头文件
.C文件
组成:
1)头文件
#include <stdio.h>
#include "student.h"
< >包括起来的是系统的头文件
" "包含起来的是自己定义的文件
2)宏定义(define)
a.不带参数的宏
#define 宏名 替换的内容 #define PI 3.1415
b.带参数的宏
#define 宏名(参数) 替换的内容
#define MAX(a,b) (a)>(b)? (a):(b) !!!宏定义可能会将我们的参数多次展开,导致问题
ru:
m =MAX( i++ , j);
=》m = (i++) > (j) ? (i++) : (j)?
展开后值发生了变化
解决方案
#define MAX(a, b) ({\
typeof(a) _a = a;\
typeof(b) _b = b;\
(_a) > (_b) ? (_a) : (_b);\
})
typeof 只会取a的类型,不会展开a
3)声明
函数声明
内部函数 :函数头;
外部函数 :extern 函数头;
变量声明
外部变量 :extern 函数类型 函数名
类型声明
结构体
4)函数的定义和全局变量
一个工程中有且只有一个 main函数,这个main函数为程序的入口,main函数结束的同时,程序也执行完毕
.h文件
.h文件相当于一个接口文件,不会写具体的函数定义,
防止重复定义使用#ifndef
一般写法
#ifndef __文件名_H__ (文件名大写)
#define __文件名_H__
定义结构体
定义全局变量
函数声明
#endif