奇思妙想 · 2024年 4月 15日 0

如何包含头文件最多只有一次?

91 次浏览

早期,标准的C语言采用#ifndef/#define的模式让头文件永远只能被包含一次,避免重复。事实上,这种写法更多是利用了条件编译宏,如果不小心将不同头文件用了同一个宏判断,会出现稀奇古怪的错误。ObjC引入了#import包含头文件,以编译器做担保,只能包含一次。一种非标准,但是不少编译器支持的新写法是#pragma once,GCC、Clang、MSVC都支持这种扩展写法。

ObjC利用#import引入头文件,头文件就不需要再像以往C语言那样加上#ifndef/#define避免重复包含了,编译器已经解决了重复包含的问题。