hur.cn - 华软网

 热门搜索

# program once 有什么作用啊

  作者:未知    来源:网络    更新时间:2010/10/21
各位前辈,我看 MFC 代码的时候经常看到 # program once 这个语句,它到底有什么作用、什么时候用到啊?是不是只让程序运行一次的意思呢?
---华软 网友回答---
防止头文件重复编译。
和有些头文件的
#ifndef HEADER
#define HEADER
#endif
一样
---华软网友回复---
效果等同于
#ifndef __xxx__
#define __xxx__

...

#endif // __xxx__

在头文件中用这种写法就是为了该头文件被重复包含时不会出现符合重定义的错误,更简单的替代方式就是
#pragma once
---华软网友回复---
引用 2 楼 jameshooo 的回复:
效果等同于
#ifndef __xxx__
#define __xxx__

...

#endif // __xxx__

在头文件中用这种写法就是为了该头文件被重复包含时不会出现符合重定义的错误,更简单的替代方式就是
#pragma once


是对的,同意
---华软网友回复---
你认为一样就行了。
---华软网友回复---
同问 回复太快,请先休息一下!
---华软网友回复---
引用 2 楼 jameshooo 的回复:
效果等同于
#ifndef __xxx__
#define __xxx__

...

#endif // __xxx__

在头文件中用这种写法就是为了该头文件被重复包含时不会出现符合重定义的错误,更简单的替代方式就是
#pragma once

yes
---华软网友回复---
在头文件中用这种写法就是为了该头文件被重复包含时不会出现符合重定义的错误,更简单的替代方式就是
#pragma once

---华软网友回复---
我记得本论坛的大牛总结过楼主的问题.我貌似收藏了,我去找找...
---华软网友回复---
引用 2 楼 jameshooo 的回复:
效果等同于
#ifndef __xxx__
#define __xxx__

...

#endif // __xxx__

在头文件中用这种写法就是为了该头文件被重复包含时不会出现符合重定义的错误,更简单的替代方式就是
#pragma once

但是,如果出现两个相同的文件内容的文件,#pragma once就无效了

---华软网友回复---
引用 2 楼 jameshooo 的回复:
效果等同于
#ifndef __xxx__
#define __xxx__

...

#endif // __xxx__

在头文件中用这种写法就是为了该头文件被重复包含时不会出现符合重定义的错误,更简单的替代方式就是
#pragma once


+1
---华软网友回复---
该用法好像是微软的,代替C的标准用法
---华软网友回复---
以上说的都有道理, 


我来接点分。
---华软网友回复---
# program once 防止头文件被重复包含


以下代码有相似的作用:
#ifndef _main_h
#define _main_h
#endif

---华软网友回复---
预编译指令。。
---华软网友回复---
明白一点了,谢谢各位了
---华软网友回复---
引用 1 楼 visualwind 的回复:
防止头文件重复编译。
和有些头文件的
#ifndef HEADER
#define HEADER
#endif
一样



回答的很正确
---华软网友回复---
回答的都很好
---华软网友回复---
但是对于两个文件都包含这个会怎么样呢?
---华软网友回复---
刚刚看了别的解释,觉得写得挺好,http://www.cppblog.com/liuliunumberone/MyPosts.html
这个就是最详细版本的解释了吧

---华软网友回复---
学习学习      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。