Switching between float and double precision at compile time

前端 未结 3 1544
一向
一向 2021-01-14 15:27

Where should I look at if I want to switch between float and double precision at compile time. Its like, if user wants everything in float instead of double precision how I

相关标签:
3条回答
  • Without knowing exactly how you intent to use the data, it's hard to recommend the correct solution.

    Have a look at the union date type.

    http://msdn.microsoft.com/en-us/library/5dxy4b7b(v=VS.80).aspx

    Templates would also be a viable option depending on the usage.

    http://msdn.microsoft.com/en-us/library/y097fkab.aspx

    0 讨论(0)
  • I prefer not to have #defines in my code.

    I would have two different headers with two different typedefs, and allow build options to choose which header is included.

    0 讨论(0)
  • 2021-01-14 16:06

    If it is OK to make the switch at compile time, a simple typedef would do:

    #ifdef USE_DOUBLES
    typedef double user_data_t;
    #else
    typedef float user_data_t;
    #endif
    

    Use user_data_t in your code, and set USE_DOUBLES if you want doubles at compile time:

    g++ -DUSE_DOUBLES=1 myprogram.cpp
    
    0 讨论(0)
提交回复
热议问题