根据 C + + 03标准2.3/1:
在进行任何其他处理之前,以下三个字符序列之一(“三元序列”)的每一次出现都将被表1中指示的单个字符替换。
---------------------------------------------------------------------------- | trigraph | replacement | trigraph | replacement | trigraph | replacement | ---------------------------------------------------------------------------- | ??= | # | ??( | [ | ??< | { | | ??/ | \ | ??) | ] | ??> | } | | ??’ | ˆ | ??! | | | ??- | ˜ | ----------------------------------------------------------------------------
在现实生活中,这意味着代码 printf( "What??!\n" );
将导致打印 What|
,因为 ??!
是一个触发序列,取而代之的是 |
字符。
我的问题是使用触发器的目的是什么? 使用触发器有什么实际的好处吗?
UPD : 在回答中提到,一些欧洲键盘没有所有的标点符号,所以非美国程序员必须在日常生活中使用触发器?
UPD2 : VisualStudio2010默认关闭了对触发器的支持。