¿Las funciones miembro tienen que ser funciones en línea?
No
1. Las funciones en línea son similares a las macros en C, pero las macros a menudo tienen algunos factores inseguros. Por ejemplo, la definición de macro add() es a b y la definición de macro. es Expandir directamente sin hacer ningún juicio. Si se llama a res = add()*c, el código obtenido es res = a b*c;
Una función en línea puede entenderse como una definición de macro segura. Es una función real, pero no es necesario insertarla ni extraerla de la pila. Es más rápida y segura que las definiciones de macro. Las funciones cortas y de frecuencia relativamente alta se pueden escribir como funciones en línea.
2. Cuando se compila la función en línea, el código de la función en línea se compilará directamente en el lugar donde se llama la función. Reduce operaciones como saltos y envío de datos a la pila durante una llamada de función. Por lo tanto, en comparación con la cantidad de líneas llamadas, la eficiencia de ejecución de las funciones en línea es relativamente alta. Sin embargo, debido a esto, el archivo de programa final generado es ligeramente más grande.
1. Las funciones en línea pueden reducir la sobrecarga del sistema de la CPU y aumentar la velocidad del programa general. Sin embargo, cuando la función en línea es grande, tendrá el efecto opuesto. Por lo tanto, las funciones en línea generalmente se usan para funciones más pequeñas.
2. Hay dos formas de declarar funciones en línea: una es usar la palabra clave en línea antes de la función; la otra es definir el código de la función dentro de la clase. Dicha función se convertirá automáticamente en una función en línea. Necesito convertirlo a en línea. Ponlo antes de la función.
3. La inserción es una solicitud al compilador, como el especificador de registro. Las siguientes condiciones impedirán que el compilador obedezca esta solicitud. Si la función contiene bucles, declaraciones switch o goto, funciones recursivas y funciones estáticas.