代码之家  ›  专栏  ›  技术社区  ›  Abhinav Kumar

如何将#define的数据类型设置为长双精度?

  •  1
  • Abhinav Kumar  · 技术社区  · 1 年前

    我有一个c代码,在其中我定义了一些变量,以便使用 #define 命令

    然而,我认为有一些方法可以在float和double数据类型之间切换,例如:

    #define 1.0f     // float data type
    

    #define 1.0     // double data type
    

    有没有一种方法可以使用它来设置长双数据类型的变量?

    2 回复  |  直到 1 年前
        1
  •  5
  •   Brian61354270    1 年前

    后缀 float constant 具有 l L 给它类型 long double :

    1.0L
    

    请注意,浮点常量只对C有意义 preprocessor 是的,这只是一个由四个字符组成的字符串,与其他字符没有什么不同。

        2
  •  0
  •   machine_1    1 年前

    define 需要一个标识符。您的代码不是有效的C代码,因为您使用常量文字代替标识符;但是为了回答您的问题,如果您希望浮点文字的类型为长双精度,可以使用后缀 l 或资本: L :

    void foo(long double x) { // ...}
    
     foo(1.0L);
    
        3
  •  0
  •   Cristian Rodríguez    1 年前
    constexpr long double foo = 1.0; /* In C23  */
    

    是另一种更清洁的方法。

    推荐文章