在objective-C中#pragma mark是啥意思

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在objective-C中#pragma mark是啥意思相关的知识,希望对你有一定的参考价值。

参考技术A 表示允许用关键字“alien”,"near","far",“readonly”来指示数据对象

如何在 Visual Studio 中自动缩进 #pragma 指令

【中文标题】如何在 Visual Studio 中自动缩进 #pragma 指令【英文标题】:How to automatically indent #pragma directive in Visual Studio 【发布时间】:2015-12-21 16:51:40 【问题描述】:

有人知道如何确保 Visual Studio 2013(C++ 项目)中的 #pragma 指令正确缩进吗?

Visual Studio 总是消除我对这些指令所做的缩进,这让我很恼火。这让我很难折叠我的源代码部分。下面的例子是一个没有缩进的例子。如果它是缩进的,那么它会更容易阅读。

void func()

#pragma region section 1
#pragma endregion

【问题讨论】:

【参考方案1】:

我不同意 #pragma 表达式不应该缩进以显示它们是无范围的。因为在这个特殊的问题中#pragma region MyName 什么都不是,那将改变代码路径或它的任何含义。区域编译指示只是 IDE 的元信息。我很想说,微软误用了#pragma关键字来启用可以折叠区域的IDE功能。

在我的日常代码库中,预处理器指令很少,但有很多 region 指令。因此,我不会冒险通过缩进 pragma 来误解文本。 如果你喜欢缩进 #pragma 表达式,你可以在下面启用它:

Tools > Options > Text Editor > C/C++ > Formatting > Indentation > Position of preprocessor directives > Leave indented

这至少从安装了 Productivity Power Tools 的 Visual Studio 2017 开始有效。

【讨论】:

我经常使用region 来隐藏不重要的代码部分。缩进看起来真的很棒。 +1【参考方案2】:

如果它是缩进的,那么它会产生误导。 #pragmas 是预处理器指令,不遵守范围。您正试图告诉读者您的代码相反。

Visual Studio 是明智的,这一次,我不知道如何改变这种行为。

【讨论】:

【参考方案3】:

我同意Lightness Races in Orbit 的answer。无论缩进如何,预处理器命令都会被执行,并且让它们具有 0 缩进有助于调出代码块被它们包装。

也就是说,如果您想阻止 MSVS 更改缩进,您可以转到

Tools -> Options -> Text Editor -> C/C++ -> Tabs

并将其从 Smart 更改为 Block。这也将阻止自动缩进在其他所有内容上发生,因此您可能不想要它。

【讨论】:

以上是关于在objective-C中#pragma mark是啥意思的主要内容,如果未能解决你的问题,请参考以下文章

#pragma mark指令

oc-09-#pragma mark指令的使用,用于查找代码

聊聊 #pragma 和 // MARK:

Android Studio 中的 #pragma 标记等效项

Swift 3 获取请求错误(警告:无法加载任何 Objective-C 类信息)

键盘字数限制