1.#ifdef ...... 和#endif 配套使用
1.在C语言中,我们通常会在头文件里面声明外面使用的宏定义、函数声明以及全局变量定义之类的,当我们需要使用这个东西的时候,只需要通过include "xxxx.h"包含相应的头文件即可。 但是如果连个xx.c文件同时包含了同一个头文件,会出现什么情况呢? 如果没有不使用#ifdef #endif ,则会出现宏、变量、重复定义,导致编译通不过。 所以我们需要通过 #ifdef #endif 来避免这个问题。
2.如何使用比如头文件名为 keyboard.h 。那么通用的使用方法如下: #ifndef _KEYBOARD_H #define _KEYBOARD_H ............ #endif 通过这种方法,当第一次使用这个头文件的c文件,编译时,查看是否定义 _KEYBOARD_H 第一次肯定没有,所以它就定义了头文件里面的相关宏以及变量。 第二个使用这个头文件的C文件,编译时,一看 _KEYBOARD_H已经存在,说明我需要使用的东西使用存在,不需要定义了,直接使用就可以了 ,这样 问题就解决了
2.#define使用
define是C语言中的预处理命令,它用于宏定义,可以提高源代码的可读性,为编程提供方便。 预处理命令以“#”号开头,如包含命令#include,宏定义命令#define等。一般都放在源文件的前面,它们称为预处理部分。 所谓预处理是指在进行编译之前所作的工作。预处理是C语言的一个重要功能,它由预处理程序负责完成。当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分作处理,处理完毕自动进入对源程序的编译。