标签: pragma

在Java/Eclipse中分组方法的任何方法?

我希望能够对类似的方法进行分组,并将它们显示在Eclipse的Outline视图中.这使得在大范围内更容易导航大量代码,并且更容易找到所需的方法.在Objective-C中,您可以设置一个pragma mark命令.

对java/eclipse有什么相似之处吗?

java eclipse pragma

19
推荐指数
2
解决办法
1万
查看次数

#pragma曾经在头部守卫中出现的原因是什么?

刚见过这里面 <boost/asio.hpp>

#ifndef BOOST_ASIO_HPP
#define BOOST_ASIO_HPP

#if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)

/// ....

#endif // BOOST_ASIO_HPP
Run Code Online (Sandbox Code Playgroud)

无视_MSC_VER预处理器检查,#pragma once在这种情况下有什么好处?在所有情况下以及在所有平台上,预处理器头部保护是否都不能确保头部内容只有included一次?

c++ boost pragma header-files c-preprocessor

18
推荐指数
1
解决办法
7187
查看次数

pragma pack(1)也不是__attribute __((aligned(1)))有效

我的代码过去常用,但现在结构大小突然是16个字节.它曾经是13个字节.我最近从Xcode 4.2升级到Xcode 4.3.1(4E1019).

#pragma pack(1)
struct ChunkStruct {
    uint32_t width;
    uint32_t height;
    uint8_t bit_depth;
    uint8_t color_type;
    uint8_t compression;
    uint8_t filter;
    uint8_t interlace;
};
#pragma pack()
STATIC_ASSERT(expected_13bytes, sizeof(struct ChunkStruct) == 13);
Run Code Online (Sandbox Code Playgroud)

我试过不成功的使用

#pragma pack(push, 1)
/* struct ChunkStruct { ... }; */
#pragma pack(pop)
Run Code Online (Sandbox Code Playgroud)

我也试过以下,但没有运气

struct ChunkStruct {
    uint32_t width;
    uint32_t height;
    uint8_t bit_depth;
    uint8_t color_type;
    uint8_t compression;
    uint8_t filter;
    uint8_t interlace;
} __attribute__ ((aligned (1)));
Run Code Online (Sandbox Code Playgroud)

如何用Xcode 4.3.1打包结构?

pragma llvm pack xcode4

18
推荐指数
1
解决办法
1万
查看次数

何时使用Pragma Pure/Preelaborate

有一组通用规则/指南,可以帮助了解什么时候喜欢pragma Pure,pragma Preelaborate或别的东西完全?标准(Ada 2012)中提出的规则和定义有点沉重,我很感激阅读一些更为清晰的内容并针对普通案例.

如果我想彻底了解它的"原因",我可以简单地试试:

  • 标记包规格 pragma Pure;
  • 如果没有编译,请尝试 pragma Preelaborate;
  • 如果失败了,那么我已经做了一些棘手的事情,要么需要逐个pragma Elaborate单元,要么重新考虑包布局.withwith

虽然这可能有效(是吗?),因为建议尽可能将包标记为Pure(同样使用Preelaborate),但它看起来有点脑损伤,我更愿意更好地理解这个过程.

ada pragma elaboration

18
推荐指数
2
解决办法
4962
查看次数

可以在clang中禁用此警告吗?警告:#pragma在主文件中一次

警告:#pragma在主文件中一次

我们通过clang运行我们的标题以获得部分AST.

是否可以禁用该警告?

pragma clang suppress-warnings

17
推荐指数
4
解决办法
1万
查看次数

#pragma曾经在C中意味着什么?

可能重复:
#pragma - 帮助理解

我看过pragma很多次,但总是很困惑,任何人都知道它的作用?它只是窗户吗?

c pragma

16
推荐指数
2
解决办法
4万
查看次数

如何使用nvcc禁用编译器警告

我想禁用特定编译器警告nvcc,特别是

警告:不允许NULL引用

我正在使用的代码使用NULL引用是其中的一部分#pragma,因此无法避免.

一个理想的解决方案是nvcc在我们想要禁用警告的源文件中,但编译器标志也可以,如果存在只关闭有问题的警告.

编辑:5年前我问过这个问题,从那以后就提供了两种不同的解决方案.

下面的@ user2333829提出的第一个是使用NULL编译器标志来关闭整个文件的警告.

第二个解决方案,通过@cr_dave5年提出的问题被问之后,是一个#pragma基础的方法,可以让你关闭警告非常有针对性的方式.

多年来感谢您的反馈!

cuda pragma compiler-warnings nvcc

16
推荐指数
3
解决办法
7536
查看次数

有没有办法在SQLite中获取表的约束?

命令"pragma table_info('tablename')"列出列信息,"pragma foreign_key_list('tablename')"列出外键.如何显示表的其他约束(检查,唯一)?只解析表"sqlite_master"的字段"sql"?

sqlite constraints list pragma

15
推荐指数
2
解决办法
7310
查看次数

如何在GCC中使用pragma指令禁用所有警告

我正在寻找一种方法来抑制我可能通过pragma指令获得的所有可能的警告.我制作了一些警卫宏来帮助我让第三方标题从警告中消失,而现在它们对于msvc和clang来说就像魅力一样.我仍然缺少使用Gcc诊断编译指示的正确方法来抑制部分中的每个警告.我举几个例子:

在msvc中我们可以这样做:

#pragma warning(push, 0)
// Code that produces warnings...
#pragma warning(pop)
Run Code Online (Sandbox Code Playgroud)

在clang我们可以做到这一点:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wall"
#pragma clang diagnostic ignored "-Wextra"
// Code that produces warnings...
#pragma clang diagnostic pop
Run Code Online (Sandbox Code Playgroud)

中间的代码现在正在被警告保持沉默.

在Gcc中我们也有类似的pragma指令与clang,我想我可以尝试这样的事情:

#pragma GCC diagnostic push
#pramga GCC diagnostic ignored "-Wall"
#pragma GCC diagnostic ignored "-Wextra"
// Code that produces warnings...
#pramga GCC diagnostic pop
Run Code Online (Sandbox Code Playgroud)

但是在GCC中传递-Wall和-Wextra在诊断忽略的pragma中并不像clang那样工作,并且不会禁用所有可能的警告.而不是传递一个特定的警告来禁用工作:

#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunused-parameter"
void foo (int x) // No longer getting "unused …
Run Code Online (Sandbox Code Playgroud)

c++ gcc warnings pragma

15
推荐指数
1
解决办法
4280
查看次数

我可以在C++中更改静态变量初始化顺序吗?

我在Visual Studio 2015 sp3中使用C++.通过

#pragma init_seg(compiler)
Run Code Online (Sandbox Code Playgroud)

,我首先初始化一些静态变量(到内存管理). https://msdn.microsoft.com/en-us/library/7977wcck.aspx

但是还有

#pragma init_seg(compiler)
Run Code Online (Sandbox Code Playgroud)

在wcerr.cpp(Microsoft Visual Studio 14.0\VC\crt\src\stl\wcerr.cpp)中,所以这些对象在我的对象之前初始化.

我可以wcerr.cpp通过任何编译/链接选项强制我的对象在对象之前被初始化吗?

c++ pragma static-variables visual-studio visual-studio-2015

15
推荐指数
1
解决办法
1123
查看次数