¿Alguien me puede decir cuál es la diferencia entre una función en línea y una función estática en línea?Diferencia entre una función en línea y una función en línea estática
¿En qué casos debería preferir la línea estática sobre la línea?
Estoy haciendo esta pregunta porque tengo una función en línea para la cual estoy enfrentando problemas de compilación durante el enlace (relocation error:... symbol has been discarded with discarded section ...
). Lo hice una función normal y funcionó. Ahora algunas de mis personas mayores me dijeron que intentara con estática en línea. A continuación es mi función:
inline void wizSendNotifier (const char* nn_name, bpDU* arg=0, int aspect = -1)
{
wizuiNotifier* notifier = ::wizNtrKit.getNotifier (nn_name);
notifier->notify (arg, aspect);
}
y esto no dentro de una clase. ¡Esto está dentro de un archivo de encabezado!
Supongo que la llamada a una función estática solo debe realizarse en la TU particular donde está definida.
Dado que mi función está en un archivo de cabecera y si lo hago estático, ¿será el caso que siempre que incluyo ese archivo de cabecera, la función estática puede usarse en esa unidad de traducción?
¿Esta función está dentro de una clase? Por favor, también publique su declaración. – anatolyg
es ':: wizNtrKit' un objeto estático? ¿Cuál es su vínculo? – Walter
Además, ¿dónde aparece la función? Archivo de encabezado, archivo de origen? ¿Cuántos archivos fuente lo incluyen? –