Autres conseils

Il était le dernier avant que je me suis fait virer.

Un travail précédent: Une déclaration de cas extrêmement longue, IIRC lignes 1000+. Ce fut bien avant les objets. Chaque option était seulement quelques lignes. Briser le haut aurait fait moins claire. Il y avait en fait une paire de ces routines faire des choses différentes au même ensemble sous-jacent de types de données.

Désolé, je n'ai pas le code plus et il est pas à moi de publier, de toute façon.

La fonction la plus longue que je ne voyais pas comme horribles serait la méthode clé d'une CPU personnalisée VM. Comme avec @epotter, cela impliquait une déclaration de grand commutateur. En fait, je dirais que beaucoup de méthode que je trouve résister à proprement décomposé ou amélioré la lisibilité implique des instructions switch.

Malheureusement, vous ne trouverez pas souvent ce type de sous-programme archivé ou affiché quelque part si c'est généré automatiquement lors d'une étape de construction en utilisant une sorte de générateur de code.

Regardez donc pour les projets qui ont généré C d'une autre langue.

En plus de la performance, je pense que la taille de la pile d'appels dans l'espace noyau est 8K (s'il vous plaît vérifier la taille). De plus, pour autant que je sache, le code dans le noyau est assez spécifique. Si un code est peu susceptible d'être réutilisée à l'avenir pourquoi se faire en fonction de l'examen en tête appel de fonction.

Je pourrais imaginer que lorsque la vitesse est importante (par exemple lors de la tenue une sorte de verrouillage dans le noyau), vous ne voudriez pas briser une fonction en raison de la surcharge en raison de faire un appel fonctionnel. Lors de la compilation, les paramètres doivent être poussées sur la pile et des données doit être sauté hors tension avant de revenir. Pour cela vous pouvez avoir une grande fonction pour des raisons d'efficacité.

scroll top