什么??(??)在C中表示iSeries

时间:2013-08-01 14:32:30

标签: c

我的任务是将C程序从iSeries / AS400转换为.NET。从我看过C开始已经有一段时间了,之前我从未在iSeries上使用过C语言。我正在看到诸如

这样的项目

main(int argc, char *argv ??(??))

我不确定是什么?是为了。根据这里的用法,我会假设它是针对数组的,但是在我走错路之前要确保它。

2 个答案:

答案 0 :(得分:7)

??(相当于[??)相当于]。这些被称为trigraphs,在用代码完成任何其他操作之前它们被预处理器替换。其他三字母Here's a list

答案 1 :(得分:3)

它被称为Trigraph

C11(ISO / IEC 9899:201x)§5.2.1.1 Trigraph序列

  

在进行任何其他处理之前,每次出现以下一种情况   三个字符的序列(称为三字母序列17))被替换为   相应的单个字符。

??=    #
??(    [
??/    \
??)    ]
??'    ^
??<    {
??!    |
??>    }
??-    ~

所以代码

main(int argc, char *argv ??(??))

转向

main(int argc, char *argv [])