这两者都是为了防止文件被包含多次。但是有些细微的区别:

1,来源的区别:#pragma once 是编译系统相关的,由编译器提供。而#ifndef ...#define ... #endif 是c/c++的宏定义,是语言相关的。

2,用法效果的区别:#pragma once 仅用来防止一个文件被包含多次。

  而如果一份文件不小心有多个一模一样的备份,#ifndef组合可以避免它们都被包含进来。因为文件中的宏名称是一样的。

  但#pragma once只能保证当前文件被包含的次数。

转载于:https://www.cnblogs.com/lc-cnblong/archive/2013/02/26/2933003.html

#pragma once 和 #ifndef ... #define ... #endif 的区别相关推荐

  1. #pragma once 和 #ifndef ... #define ... #endif 的区别【转载】

    在编写程序的时候,我们经常要用到#pragma指令来设定编译器的状态或者是指示编译器完成一些特定的动作. 1. #pragma message 指令 message能够在编译消息输出窗口中输出相应的消 ...

  2. 【转载】#pragma once与#ifndef #define #endif的区别

    一.相同点         两者的共同点都是为了避免同一个文件被 include 多次,但是 #ifndef #define #endif 不只有这个作用.  在能够支持这两种方式的编译器上,二者并没 ...

  3. #pragma once与#ifndef #define ...#endif的区别

    1. #pragma once用来防止某个头文件被多次include: #ifndef,#define,#endif用来防止某个宏被多次定义. 2. #pragma once是编译相关,就是说这个编译 ...

  4. [Windows编程] #pragma once 和#ifndef ... #define ... #endif 比较

    C++中防止头文件被多次include 的常见方式有: 1) 用#ifndef ...  #define ... #endif  宏 #ifndef __MYHEADER_H__ #define __ ...

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

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

  6. #ifndef/#define/#endif使用详解

    https://blog.csdn.net/abc5382334/article/details/18052757 想必很多人都看过"头文件中的 #ifndef/#define/#endif ...

  7. ifndef/define/endif——主要目的是防止头文件的重复包含和编译

    原文:http://www.jb51.net/article/100939.htm 原文:https://blog.csdn.net/abc5382334/article/details/180527 ...

  8. c:#ifndef, #define, #endif 作用

    #ifndef, #define, #endif 作用 #ifndef 它是if not define 的简写,是宏定义的一种,实际上确切的说,这应该是预处理功能三种(宏定义.文件包含.条件编译)中的 ...

  9. c/c++头文件中#ifndef/#define/#endif的用法

    想必很多人都看过"头文件中用到的 #ifndef/#define/#endif 来防止该头文件被重复引用".但是是否能理解"被重复引用"是什么意思?头文件被重复 ...

最新文章

  1. Android Button Example-onClickListener-Intent
  2. Scala 空返回值Unit
  3. SQL Server插入中文数据后出现乱码
  4. 初学ctypes:打开进程并返回相关信息
  5. 退出窗口[置顶] 退出Activity的方法
  6. python队列是线程安全的吗_python – 为什么我的多进程队列看起来不是线程安全的?...
  7. 2010-09-11
  8. Android数据库框架总结
  9. c语言 中缀表达式转后缀表达式,C++实现中缀表达式转后缀表达式
  10. excel表格打开是乱码怎么办?
  11. 三维计算机软件图,三维cad看图
  12. Java-String类常用方法汇总
  13. 汉字转换为拼音 第一篇
  14. android 安卓手机如何投屏到显示器
  15. 为什么编辑器打开PDF文档后提示缺少字体
  16. 怎样查询网站关键字的排名
  17. 用telnet登录163服务器发邮件
  18. 华为:编程实现联想输入法 输入联想功能是非常实用的一个功能,请编程实现类似功能
  19. 李沐笔记(softmax回归)
  20. iOS开发学无止境 - Cell 里的视图控制器

热门文章

  1. U盘文件系统类型 和 linux 挂载 和 卸载
  2. Java 并发编程AQS基本介绍
  3. 云函数与函数式编程思想结合会产生什么?
  4. 推荐几个在大厂996,却一心想要按时下班的公众号主和他们的工作(摸鱼)心得...
  5. 在系统中用etcd实现服务注册和发现
  6. 一文弄懂什么是Istio
  7. EasyExcel简单使用
  8. Atomic包的4种类型详解
  9. surface pro 5 加AD域后,人脸识别选项是灰色按钮,无法使用
  10. OAuth2.0学习(1-7)授权方式4-客户端模式(Client Credentials Grant)