编辑程序很多时候会出现重定义的错误,为了避免出错,需要理顺。
(1)通常我们会采用#include “*.h”的方式载入某个*.C对应的.H文件,如果要避免该.H文件被不同文件载入多次,需要在.H文件头尾用 #ifndef ***_h
#define ***_h
………………
#endif
这样的话,只要载入了一次,***_h就是被定义过了的,就算其他地方想载入第二次,预编译这部分也不会有效。另一个避免头文件*.H多重载入的方法是该头文件最开始加上#pragma once。目前看来#ifndef更受到推崇。因为#ifndef受C/C++语言标准的支持,不受编译器的任何限制;而#pragma once方式却不受一些较老版本的编译器支持。
(2)对于不同文件中#define的常变量,有时也会碰到重定义,只需要在用到的地方加入:
#ifndef…
#define xx uu
#endif
同样可以避免产生变量重定义的编译错误,比如定义TRUE的值。