头文件Makefile联合(union)枚举


头文件

至于头文件是什么,稍微有点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;

C语言学习笔记(二)_#ifndef

对于这个​​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​​赋了值,后面的两个枚举值会自动递增,其实​枚举类型就是相当于映射之类的东西