我从来没有理解#pragma once什么时候#ifndef #define #endif总是有效的需要.
我已经看到了#pragma comment与其他文件链接的用法,但使用IDE可以更轻松地设置编译器设置.
有哪些其他用法#pragma是有用的,但并不广为人知?
编辑:
我不只是#pragma指令列表之后.也许我应该再多说一下这个问题:
你和你一起写的代码#pragma有用吗?
.
答案一目了然:
感谢所有回答和/或评论的人.以下是我发现有用的一些输入的摘要:
#pragma once或#ifndef #define #endif允许更快地编译大型系统.史蒂夫跳进来支持这一点.#pragma onceMSVC首选,而GCC编译器优化#ifndef #define #endif.因此,应该使用其中之一,而不是两者.#pragma pack了二进制兼容性,而Clifford则反对这一点,因为可移植性和字节序可能存在问题.Evan提供了一个示例代码,Dennis告知大多数编译器会强制执行填充以进行对齐.#pragma warning用来隔离真正的问题,并禁用已经审查过的警告.#pragma comment(lib, header)在不重新设置IDE的情况下轻松移植项目.当然,这不太便携.#pragma message为VC用户提供了一个很好的技巧来输出带有行号信息的消息.詹姆斯更进一步,允许error或warning匹配MSVC的消息,并将适当显示,如错误列表.#pragma region了能够在MSVC中使用自定义消息折叠代码.哇,等等,如果我想发布不使用#pragmas除非必要,该怎么办?
#pragma.荣誉.如果SOers感觉到发布答案的冲动,我会在此列表中添加更多内容.感谢大家!