我尝试使用x86-64 clang 10.0.0 Ast Viewer打印以下代码的 AST
int main() {return 'c';}
我得到了这个:
TranslationUnitDecl
`-FunctionDecl <line:1:1, col:25> col:5 main 'int ()'
`-CompoundStmt <col:12, col:25>
`-ReturnStmt <col:13, col:21>
`-ImplicitCastExpr <col:21> 'int' <IntegralCast>
`-CharacterLiteral <col:21> 'char' 99
现在,在此之后,我尝试将 return char 'c' 更改为 'cw' 并得到:
int main() {return 'cw';}
我得到了这个:
TranslationUnitDecl
`-FunctionDecl <line:1:1, col:26> col:5 main 'int ()'
`-CompoundStmt <col:12, col:26>
`-ReturnStmt <col:13, col:21>
`-CharacterLiteral <col:21> 'int' 25463
现在,为什么 -ImplicitCastExpr 消失了,甚至从 ('char' 99) 现在变成了 ('int' 25463)。我需要解释,谢谢。