Où dois-je regarder si je veux basculer entre float et double précision au moment de la compilation. C'est comme, si l'utilisateur veut tout en float au lieu de double précision comment je peux maintenir cette flexibilité? En d'autres termes, comment définir une variable qui pourrait être flottante ou double précision conditionnellement?Basculer entre float et double précision au moment de la compilation
Répondre
S'il est OK pour faire le changement au moment de la compilation, un typedef
simple serait faire:
#ifdef USE_DOUBLES
typedef double user_data_t;
#else
typedef float user_data_t;
#endif
Utilisez user_data_t
dans votre code et définissez USE_DOUBLES
si vous voulez doubles
au moment de la compilation :
g++ -DUSE_DOUBLES=1 myprogram.cpp
Compilez les deux copies, appliquez un redirecteur de script shell à l'avant et alto! – user7116
@Shibli Il existe plusieurs façons. L'utilisation de l'option de compilateur '-D ...' fonctionne pour de nombreux compilateurs UNIX. Sous Windows, vous pouvez utiliser '/ D' ou ajouter' USE_DOUBLES' à la liste des définitions de préprocesseur dans les propriétés de votre projet C/C++. – dasblinkenlight
J'ai mis '-DUSE_DOUBLES = 1' directement dans mon fichier make et j'ai vérifié le type d'une variable flottante. Alors, comment pouvez-vous utiliser cela pour un fichier make? – Shibli
Sans savoir exactement comment vous avez l'intention d'utiliser les données, il est difficile de recommander la bonne solution.
Regardez le union date type.
http://msdn.microsoft.com/en-us/library/5dxy4b7b(v=VS.80).aspx
Modèles serait également une option viable en fonction de l'utilisation.
Je préfère ne pas avoir #define
s dans mon code.
Je voudrais avoir deux en-têtes différents avec deux typedef
différents, et permettre aux options de construction de choisir quelle en-tête est incluse.
- 1. Objective-C Float/Double précision
- 2. Dfference entre float et double
- 3. Const double cast au moment de la compilation?
- 4. Hibernate: Trouvé: float, attendu: double précision
- 5. comment détecter si le double long est de précision prolongée ou non au moment de la compilation
- 6. Lecture hexadécimal à double précision float python
- 7. quelle est la différence entre "double" et "float" dans c?
- 8. évaluer expression au moment de la compilation
- 9. .net float erreurs d'arrondi au moment de la compilation par rapport à l'exécution
- 10. Comment choisir entre les macros au moment de la compilation?
- 11. Définition de la précision/taille d'un double ou d'un flotteur au moment de l'exécution
- 12. Entièrement dactylographié au moment de la compilation
- 13. Valeur de réglage de l'union au moment de la compilation
- 14. deux types au moment de la compilation
- 15. atof() retourne float au lieu de double
- 16. Définir la précision pour double/float/decimal dans System.Windows.Forms.DataGrid
- 17. Float/double précision dans les modes débogage/déverrouillage
- 18. Conversion entre précision double et flottante en javascript
- 19. Mocking au moment de la compilation
- 20. Réception d'événements au moment de la compilation?
- 21. Grails float edit et précision
- 22. C++ double précision/précision
- 23. Séquence d'énumérateurs au moment de la compilation
- 24. Valeurs entières au moment de la compilation
- 25. AutoMapper AssertConfiguration au moment de la compilation?
- 26. type de compilation au moment de l'exécution
- 27. const char * constexpr évalué au moment de la compilation et au moment de l'exécution
- 28. Sélection au moment de la compilation du pointeur de fonction
- 29. Différence entre le code spécifié double précision et l'option du compilateur double précision
- 30. C++: Déterminer le rang de conversion intégral d'un type intégral donné au moment de la compilation?
Au moment de la compilation ou de l'exécution? – user7116