如果我想在編譯時在浮點和雙精度之間切換,我應該看看哪裏。它的樣子,如果用戶想要所有的東西都是浮動的而不是雙精度的,我可以保持這種靈活性嗎換句話說,我應該如何定義一個可以是浮點型或雙精度條件的變量?在編譯時在浮點和雙精度之間切換
回答
如果是OK,使在編譯時的開關,簡單的typedef
會做:
#ifdef USE_DOUBLES
typedef double user_data_t;
#else
typedef float user_data_t;
#endif
使用user_data_t
在你的代碼,並設置USE_DOUBLES
如果你想doubles
在編譯時:
g++ -DUSE_DOUBLES=1 myprogram.cpp
編譯兩個副本,在前面敲擊一個shell腳本重定向器,然後中提琴! – user7116
@Shibli有幾種方法。使用'-D ...'編譯器選項適用於許多UNIX編譯器。在Windows上,您可以設置使用'/ D',或將'USE_DOUBLES'添加到C/C++項目屬性中的預處理器定義列表中。 – dasblinkenlight
我把'-DUSE_DOUBLES = 1'直接放到我的make文件中,並且檢查了一個浮點型變量的類型。那麼,如何將這個用於make文件呢? – Shibli
不知道你打算如何使用數據,很難推薦正確的解決方案。
看看工會日期類型。
http://msdn.microsoft.com/en-us/library/5dxy4b7b(v=VS.80).aspx
模板也將根據使用的可行選擇。
我更喜歡在我的代碼中沒有#define
s。
我會有兩個不同的頭,有兩個不同的typedef
s,並允許構建選項來選擇包含哪個頭。
- 1. 雙精度和單精度浮點數?
- 2. 雙精度浮點數和其他浮點數精度
- 3. 在不支持雙精度的C編譯器上將64位雙精度浮點數據轉換爲Uint32
- 4. 將雙精度轉換爲浮點數
- 5. 雙精度浮點值傳遞雙精度時
- 6. 爪哇 - 雙精度浮點
- 7. 如何在CUDA中輕鬆切換單精度和雙精度?
- 8. 浮點和雙精度恆定比較
- 9. 雙精度和浮點的含義?
- 10. c中的浮點數和雙精度#
- 11. 雙精度浮點數如何轉換爲單精度浮點格式?
- 12. 浮法arithemtic和雙精度?
- 13. 無法在Scala中寫入雙精度浮點和雙精度浮點數的方法
- 14. 專門爲雙精度和浮點精度的java類
- 15. 當從雙精度轉換爲浮點時檢測精度損失
- 16. 作爲兩個雙打總和的雙雙精度浮點數
- 17. 代碼指定雙精度和編譯器選項雙精度之間的區別
- 18. 在Scala中浮點,雙精度和BigDecimal的抽象
- 19. 如何浮點和雙精度工作在IL
- 20. Qt 4.8.1和Visual Studio 2010編譯器失去浮點精度
- 21. EXPECT_EQ爲雙精度或浮點數求和時出錯
- 22. Java中的雙精度浮點型
- 23. Objective-C浮點數/雙精度
- 24. 將時間轉換爲雙精度
- 25. 單精度大端浮點值到Python浮點數(雙精度,大端)
- 26. 浮點精度
- 27. 雙精度10點精度
- 28. IEEE 754和浮點精度
- 29. 在Ruby的編譯版本和rvm版本之間切換
- 30. 在緊湊和完整的.net框架之間切換編譯?
在編譯時或運行時? – user7116