#ifndef #define #endif 和#pragma once的区别

相同点:#ifndef #define #endif 和 #pragma once 都是用来保证一个.h文件只被编译一次。

不同点:

1.

#ifndef #define #endif 用来防止一个宏被重复定义多次;

 #pragma once 可以防止一个.h文件被一个.cpp重复include。嵌套包含时这种情况很常见,比如说.cpp中include .1h和.2h,而在.1h中又包含了.2h,这样.2h就等于被.cpp包含了2次。 #pragma once 就是为了解决这种情况而发明的,它可以提高编译时的效率。

 

2.#ifndef #define #endif是C++语言相关,这是C++语言中的宏定义,通过宏定义避免文件多次编译。所以在所有支持C++语言的编译器上都是有效的,如果写的程序要跨平台,最好使用这种方式;

 #pragma once 是编译相关,就是说这个编译系统上能用,但在其他编译系统不一定可以,也就是说移植性差,不过现在基本上已经是每个编译器都有这个定义了

转载于:https://www.cnblogs.com/jswu-ustc/p/8565317.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值