头文件
至于头文件是什么,稍微有点C语言基础的人都知道,是源文件之间用来做共享的,首先来说一下头文件编写的一个小技巧
在包含头文件的时候,我们有时候会把同一个文件包含两次以上,为了避免出现这个问题,我们可以这样做,比如说现在有一个头文件boolean.h
,它里面定义了一个宏BOOLEAN_H
那我们就可以这样编写此头文件:
#ifndef BOOLEAN_H
#define BOOLEAN_H
#define TRUE 1
#define FALSE 0
#endif
这样一来,当我们第一次#include "boolean.h"
的时候,#ifndef
和#endif
之间的宏定义会被执行,但是当我们再次包含该头文件的时候,#ifndef
和#endif
之间的语句就失效了,这样的话,即使该头文件被包含了两次,也不会引发错误
Makefile
基本格式:
目标:依赖
编译命令
联合(union)
联合的声明方式与结构体是非常相近的,他们两个唯一的差别就是:
union u {
int i;
double d;
} u;
对于这个union
来说,如果说int
占4字节,double
占8字节,那么double
数据的前四个字节是和int
共享的,这种结构有利于节约空间,在这个例子中,只要int
的值改变了,那么相应的,double
的值也会变成和int
相同的值
枚举
直接来看一段代码吧:
#include<stdio.h>
#define PRINT_INT(n) printf(#n" = %d\n", n)
int main() {
enum suit {CLUB = 1, DIAMONDS = 2, HEARTS, SPADES};
int i;
i = HEARTS;
PRINT_INT(i);
return 0;
}
在上面代代码的枚举类型suit
中,我们只给CLUB
和DIAMONDS
赋了值,后面的两个枚举值会自动递增,其实枚举类型就是相当于映射之类的东西