#include <iostream>
using namespace std;
int main() {
// your code goes here
int a = 10;
printf("\n a = %d", a),int(3);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
此代码在C++(http://ideone.com/RSWrxf)中运行良好,但同一printf行在C中不起作用.为什么它可以工作C++?我对两个语句和C/C++编译差异之间允许的逗号感到困惑.
Pau*_*l R 11
int(3) 在C中是无效的语法.你可以这样写它:
printf("\n a = %d", a),(int)3;
Run Code Online (Sandbox Code Playgroud)
甚至只是:
printf("\n a = %d", a),3;
Run Code Online (Sandbox Code Playgroud)
这将在C和C++中编译.
请注意,它后面printf的冗余表达式之间的逗号只是逗号运算符.printf调用和以下表达式的结果都将被丢弃.
| 归档时间: |
|
| 查看次数: |
313 次 |
| 最近记录: |