2

Mi pregunta sería cómo crear o declarar una función en C++. Soy bastante nuevo y la verdad no estoy muy familiarizado con este lenguaje. También quería saber cómo crear funciones que, en caso de que no las use en el código, que el compilador omita compilar dicha función (intenté usando "stock myfunción(...)" pero creo que no se puede - en PAWN sí).

Saludos :P

EDIT: actualmente intenté esto y no me compiló errores

int EditMemoryAddress(string window[], int address, int value)

Está bien así?

DRAUXEN
  • 51
  • 2
  • 1
    Esto te será de mucha ayuda: https://www.tutorialspoint.com/cplusplus/index.htm Bienvenido a SOes, recuerda pasar por https://es.stackoverflow.com/tour para que veas el funcionamiento del sitio y de paso obtengas tu primera medalla. – fredyfx Nov 28 '18 at 00:45
  • No te tienes que preocupar por lo de *ignorar las funciones que no se usen*. Compilarse, se compilaran. Pero el *enlazador* las omitirá en el ejecutable final, y no ocuparan espacio. Échale un ojo a [símbolo externo sin resolver](https://es.stackoverflow.com/questions/65557/) para que veas como es el proceso. – Trauma Nov 28 '18 at 04:27

2 Answers2

2

¿Cómo crear o declarar una función en C++?

Crear y declarar es lo mismo, para declarar una función en C++ sigue esta sintaxis:

tipo_de_retorno nombre(parámetros);

Eso crea una función llamada nombre cuyo tipo de retorno es de tipo tipo_de_retorno y sus parámetros son parámetros, por ejemplo:

void hola(); // Función 'hola' que no devuelve nada.
int mundo(int x); // Función 'mundo' que devuelve un entero y recibe un entero.

Recuerda que la declaración de una función es sólo una parte del trabajo, después de declararla deberás definirla (darle cuerpo):

void hola(); // Declaración.

void hola() // Definición
{
    // Cuerpo de la función.
}

Si defines una función sin declararla, la definición contará también como declaración.

¿Cómo crear funciones que, en caso de que no las use en el código, que el compilador omita compilar dicha función?

El compilador es más listo que tú y que yo juntos. Si no usas una función en tu código, no la compilará. Pero puedes forzar al compilador a que no compile ciertas partes del código usando macros:

#ifdef NO_ME_COMPILES
void hola();
int mundo(int x);
#endif

El código anterior encierra dos declaraciones de función en un segmento de código limitado por una macro, si en algún punto anterior del código escribes #define NO_ME_COMPILES todo lo que esté en el segmento limitado por #ifdef NO_ME_COMPILES no se compilará.

PaperBirdMaster
  • 44,474
  • 6
  • 44
  • 82
0

Desconozco lo de ignorar las funciones al compilar, pero te explico el como declarar funciones en C++

Te vas a encontrar con la siguiente forma:

tipo_de_dato nombre_de_funcion()
{
  return tipo_de_dato
}

Donde declaras el tipo de dato que va a retornar tu función, el nombre de la misma, haces algún cómputo y retornas un valor del tipo de dato antes dicho. Por ejemplo:

int suma(int a, int b)
{
  return a + b;
}

Puedes usar void si es que tu función no retorna ningún valor.

void hola(string nombre)
{
  std::cout << "Hola " << nombre << ".\n";
}
akko
  • 2,378
  • 2
  • 27
  • 56
  • Hola akko, gracias por responder. Supongo que usaría "void". Tengo otra duda, cómo cambio el valor de una variable (dentro de una función) según un valor que está dentro de los parámetros de la función? Tengo este código de ejemplo: `int main() { myfunc(1); return 0; } void myfunc(int value) { int value2 = value1; }` Pero me tira los siguientes errores: `\code.cpp In function 'int main()': \code.cpp [Error] 'myfunc' was not declared in this scope \code.cpp In function 'void myfunc(int)': \code.cpp [Error] 'value1' was not declared in this scope` – DRAUXEN Nov 28 '18 at 00:14