Llamar a una función no declarada es un estilo deficiente en C (Ver this ) e ilegal en C++ y también lo es pasar argumentos a una función usando una declaración que no enumera los tipos de argumento.
Si llamamos a una función no declarada en C y la compilamos, funciona sin ningún error. Pero, si llamamos a una función no declarada en C++, no compila y genera errores.
En el siguiente ejemplo, el código funcionará bien en C,
C
// C Program to demonstrate calling an undeclared function #include <stdio.h> // Argument list is not mentioned void f(); // Driver Code int main() { // This is considered as poor style in C, but invalid in // C++ f(2); getchar(); return 0; } void f(int x) { printf("%d", x); }
2
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)
Sin embargo, si ejecuta el código anterior en C++, no compilará y generará un error,
C++
// CPP Program to demonstrate calling an undeclared function #include <bits/stdc++.h> using namespace std; // Argument list is not mentioned void f(); // Driver Code int main() { // This is considered as poor style in C, but invalid in // C++ f(2); getchar(); return 0; } void f(int x) { cout << x << endl; }
Producción
prog.cpp: In function ‘int main()’: prog.cpp:13:8: error: too many arguments to function ‘void f()’ f(2); ^ prog.cpp:6:6: note: declared here void f(); ^
Complejidad de tiempo: O(1)
Espacio Auxiliar: O(1)
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