编写一个程序,编译和运行C和C++,但产生不同的结果时,编译的C和C++编译器。
null
有很多这样的项目,下面是其中的一些。
1) 字符文字在C和C++中被不同对待。在C语言中,像‘a’、‘b’、。。ETC被当作整数,而作为C++中的字符。(见 这 (详情请参阅)
例如,下面的程序在C中生成siZoof(int)作为输出,而C++中生成siZoof(char)。
#include<stdio.h> int main() { printf ( "%d" , sizeof ( 'a' )); return 0; } |
2) 在C语言中,每当我们声明一个结构变量时,我们都需要使用struct标记。在C++中,结构标记不是必需的。例如,假设有一个 大学生 .在C中,我们必须使用’ 体类型 “因为 大学生 变量。在C++中,我们可以省略结构和使用 大学生 “只是。 下面是一个基于事实的程序,在C和C++中产生不同的输出。它在C和Sigeof(StRet T)中用C++打印SigeOf(int)。
#include <stdio.h> int T; int main() { struct T { double x; }; // In C++, this T hides the global variable T, // but not in C printf ( "%d" , sizeof (T)); return 0; } |
3) 布尔结果的类型在C和C++中是不同的。感谢Gaurav Jain提出这一点。
// output = 4 in C (which is size of int) printf ( "%d" , sizeof (1==1)); // output = 1 in c++ (which is the size of boolean datatype) cout << sizeof (1==1); |
本文由 阿比拉蒂 。如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请发表评论
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END