关于 pragma使用
Posted coderydw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于 pragma使用相关的知识,希望对你有一定的参考价值。
如果你知道你的代码不会导致内存泄露,你可以通过加入这些代码忽略这些警告
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
[myObj performSelector:mySelector withObject:name];
#pragma clang diagnostic pop
注意我们是如何在相关代码上下文中用 pragma 停用 -Warc-performSelector-leaks 检查的。这确保我们没有全局禁用。如果全局禁用,可能会导致错误。
全部的选项可以在 The Clang User‘s Manual 找到并且学习。
忽略没用使用变量的编译警告
这对表明你一个定义但是没有使用的变量很有用。大多数情况下,你希望移除这些引用来(稍微地)提高性能,但是有时候你希望保留它们。为什么?或许它们以后有用,或者有些特性只是暂时移除。无论如何,一个消除这些警告的好方法是用相关语句进行注解,使用 #pragma unused():
- (void)giveMeFive
{
NSString *foo;
#pragma unused (foo)
return 5;
}
现在你的代码不用任何编译警告了。注意你的 pragma 需要标记到未定义的变量之下。
摘录来自: 极客学院. “Programming with Objective-C。” Apple Books.
以上是关于关于 pragma使用的主要内容,如果未能解决你的问题,请参考以下文章
关于结构体内存对齐方式的总结(#pragma pack()和alignas())