Escriba un programa que compile y se ejecute tanto en C como en C++, pero que produzca resultados diferentes cuando lo compilen los compiladores de C y C++.
Puede haber muchos programas de este tipo, los siguientes son algunos de ellos.
1) Los caracteres literales se tratan de manera diferente en C y C++. En C, los caracteres literales como ‘a’, ‘b’, ..etc se tratan como enteros, mientras que en C++ son caracteres. (Ver esto para más detalles)
Por ejemplo, el siguiente programa produce sizeof(int) como salida en C, pero sizeof(char) en C++.
#include<stdio.h> int main() { printf("%d", sizeof('a')); return 0; }
2) En C, necesitamos usar la etiqueta de estructura cada vez que declaramos una variable de estructura. En C++, la etiqueta struct no es necesaria. Por ejemplo, supongamos una estructura para Student . En C, debemos usar ‘ struct Student ‘ para las variables de Student . En C++, podemos omitir struct y usar solo ‘ Student ‘.
El siguiente es un programa que se basa en el hecho y produce diferentes resultados en C y C++. Imprime sizeof(int) en C y sizeof(struct T) en C++.
#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) Los tipos de resultados booleanos son diferentes en C y C++. Gracias a Gaurav Jain por sugerir este punto.
// 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);
Este artículo es una contribución de Abhay Rathi . Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA