Si divides el código en diferentes archivos, o elaboras librerías, solo se debieran recompilar los archivos modificados. Luego, solo actuaría el linker para unir los códigos objeto (salvo que usaras librerías de enlace dinámico)
Había visto un juego en Condingame que pedía eso, dado un set N-Tiempo, sacar el tipo de complejidad. Si buscas por CondinGame alguien que lo haya hecho, y te comenta su algoritmo, puedes hacer lo que pides tú mismo xd
¿Podría ser cosa del tamaño de 'DeviceModeFields'? ¿Tiene el tamaño correcto? O los miembros del union tienen el mismo offset en ambas implementaciones?
Si quieres trabajar con datos del tipo T[X][Y], coloca como parámetro de la función "char texto[3][MAX_LONG_LINEA]". Luego, tendrás que copiar los datos (con un par de bucles for anidados, por ejemplo) de una matriz a la otra.
Coloca s.size()+1. Uno más que el tamaño de la string. No sé si tiene que evr con caracteres nulos, o si es otra peculiaridad, así que no te puedo dar la razón por la cual debiera funcionar así :S
Ponerlo evita que sin querer coloques mal la función, y acabes por no 'sobreescribirla', ya que el compilador te avisa si poner @Override en un método que no existía de antes.