我的任务是将C程序从iSeries / AS400转换为.NET。从我看过C开始已经有一段时间了,之前我从未在iSeries上使用过C语言。我正在看到诸如
这样的项目 main(int argc, char *argv ??(??))
我不确定是什么?是为了。根据这里的用法,我会假设它是针对数组的,但是在我走错路之前要确保它。
答案 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 [])