代码:
#include <stdio.h>
int main(void)
{
??< puts("Hello Folks!"); ??>
}
当使用GCC 4.8.1编译上述程序并加上-Wall
和-std=c11
选项时,会出现以下警告:
source_file.c: In function ‘main’:
source_file.c:8:5: warning: trigraph ??< converted to { [-Wtrigraphs]
??< puts("Hello Folks!"); ??>
^
source_file.c:8:30: warning: trigraph ??> converted to } [-Wtrigraphs]
但是当我将
main
的主体更改为以下内容时:<% puts("Hello Folks!"); %>
没有任何警告被抛出。
那么,为什么使用三连符时编译器会发出警告,而使用双连符时却不会?
-std=xxx
,这意味着gcc
会自动打开三字符。因此也许我同意这是重复的。 - Shafik Yaghmour