程序员

#pragma预处理指令与_Pragma操作符

2018-01-17  本文已影响0人  Billlin

#pragma预处理指令

在C/C++标准中,#pragma是一条预处理的指令。


_Pragma操作符

_Pragma操作符具有与#pragma指令相同的功能。
相比预处理指令#pragma,_Pragma操作符可用于宏定义中的内联。#pragma指令不能用于宏定义中,因为编译器会将指令中的数字符号("#")解释为字符串化运算符(#)。

例子:宏定义忽略-Warc-performSelector-leaks警告

#define PERFORMSELECTOR(expression) \
_Pragma("clang diagnostic push") \
_Pragma("clang diagnostic ignored \"-Warc-performSelector-leaks\"") \
expression \
_Pragma("clang diagnostic pop") \

// 调用
PERFORMSELECTOR([wTarget performSelector:sel withObject:nil];);

Which Clang Warning Is Generating This Message?

上一篇下一篇

猜你喜欢

热点阅读