社区
C++ 语言
帖子详情
#pragma once是什么意思
yeahchang
2004-01-19 09:43:03
(1)#pragma once是什么意思?
(2)#pragma once是否等价于:
#ifndef A_H
#define A_H
...//Here is code.
#endif
...全文
1623
6
打赏
收藏
#pragma once是什么意思
(1)#pragma once是什么意思? (2)#pragma once是否等价于: #ifndef A_H #define A_H ...//Here is code. #endif
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fireseed
2004-01-20
打赏
举报
回复
使用#pragma once虽然方便,但将导致代码移植性变差,因为只有VC的编译器能认
yeahchang
2004-01-20
打赏
举报
回复
To mmosquito(): 您是指:#include "zlib.h"和#include <zlib.h>时,应分别选用pragma once和ifndef define endif对吗??
yeahchang
2004-01-20
打赏
举报
回复
To mmosquito(): 对于“公有或者接口的文件”的这个例子您能再具体化些吗?
byyyyy
2004-01-19
打赏
举报
回复
Specifies that the file, in which the pragma resides, will be included (opened) only once by the compiler in a build. A common use for this pragma is the following:
//header.h
#pragma once
// Your C or C++ code would follow:
mmosquito
2004-01-19
打赏
举报
回复
以前写的,翻出来看看
在vc6的时代头文件一般使用ifndef define endif
在vc7的时代头文件一般成了pragma once
不知道有没有人深究其中的意义
为什么有这样的代码,是为了头文件不被重复引用,那样编译器抱错的,这两种方法都是同样的目的,有没有区别呢?
还是举例来说明,可能有好几个库,每个库内部可能都有public.h这个文件,如果使用
ifndef public_h
define public_h
...
endif
那么当一个文件同时引用两个这样的库时,后一个库里的文件就不被编译了,而pragma once可以保证文件只被编译一次
看起来pragma once比ifndef define endif要好,那么ifndef define endif
的地方都pragma once好了。今天碰到了又一个例子,比如你有一个zlib.h在几个库都用到,而为了方便,把zlib每个目录下copy了一分,因为这个文件不会作修改,已经很完整了,这个时候如果使用pragma once,就会重复定义,看来ifndef define endif还是又派上用场的地方。
所以对于公有或者接口的文件,使用ifndef define endif,对于内部的文件使用pragma once.
呵呵,你压根儿用不着是吧,当我没说过。
lifanxi
2004-01-19
打赏
举报
回复
查查MSDN就知道。
正像您说的,两者的功能是一致的。
C++中构造函数默认参数使用
一代码 #include <iostream> using namespace std; class Box{ public: Box(int h=2,int w=2,int l=2);//在声明构造函数时指定默认参数 int volume(); private: int height,width,length; }; Box::Box(int h,int...
C++使用带默认参数的构造函数
原文发于:http://qing.weibo.com/2059598087/7ac2f90733002bwr.html 一般来说,我们需要向对象的构造函数传入参数,并以此对内部状态进行设置。在C++中,对象的声明同时也意味着调用默认构造函数,亦即不带任何参数的构造函数。同时即便我们显示的调用对象的构造函数(通过new调用),在很多时候也希望使用一些默认参数。 下面是带默认参数的构造函数的完整写
C++使用默认参数的构造函数
如果在创建对象的时候,没有传递实参给该参数p,则该参数会被默认设置为5.0。book(char* a, double p = 5.0); #include<iostream> using namespace std; class book { public: book(){} book(char* a, double p = 5.0);//默认参数5 ...
C++之带有默认参数值的构造函数
在一个类中 ,如果程序员没有写,任何一个构造函数,则编译器将为该类提供一个默认的构造函数,如果程序员对类的构造函数进行了重载,则编译器将不提供默构造函数,这里需要手动书写一个无参的构造函数, 无参的构造函数,也就是默认构造函数, 默认构造函数分为两种: 1、不含有参数的默认构造函数 2、带有默认参数值的构造函数 在这里主要说的是带有默认参数值的构造函数的使用及注意事项: 定义方法示例:
C++中关于默认构造函数和默认参数…
# include using namespace std; class Time { public: //公用成员函数 Time() //默认构造函数 { hour=13; minute=25; sec=46; } Time(int s,int h=10,i
C++ 语言
65,213
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章