#pragma命令时C语言新增的,这个命令后面可以放任何记号序列:
#pragma xxxx
可以通过它增加新的预处理功能或向编译器提供实现定义信息。#pragma命令后面的信息没有任何限制,C实现会忽略不理解的信息。它的参数需要进行行宏扩展。
不同的实现可能对同一信息进行不一致的理解,最好根据编译器有条件地使用#pragma命令。
_Pragma运算符:
是C99新增,它使得上面的杂注功能更加灵活。扩展宏之后,下列形式的运算表达式:
_Pragma("string-literal"), 就像字符串字面值内容是#pragma指令中出现的预处理记号一样。
如:
_Pragma("STDC FENV_ACCESS ON")
就像在该位置增加:
#pragma STDC FENV_ACCESS ON
#pragma 可以单独放在一行,其预处理记号不随宏扩展,而_Pragma可以防在其他表达式中间,可以通过宏扩展产生。