#pragma once与#ifndef

看了一个程序时,突然想到了这个问题,在网上搜了一下,发现还是wiki写的比较易懂,记录一下备忘。。。

  • 目的:让所在的文件或者代码段在一个单独的编译中只被包含一次

  • 区别:
    #pragma once针对的是一个文件,且相对效率更高,加快编译的速度,属于编译器特性,故兼容性不好,某些编译器不支持。

    #ifndef....#endif针对的是一个代码段,相对效率较低,因为需要进行一次判断,可能涉及查找其他的文件之类的操作,故相对效率较低,但其受C/C++语言标准支持,兼容性较好。

  • ref
    wiki pragma once
    wiki Include 防范

你可能感兴趣的:(#pragma once与#ifndef)