小编Sta*_*ver的帖子

检查数字是+ -Inf还是NaN

出于鲁棒性原因,我想检查浮点数是IEEE-754 + -Inf还是IEEE-754 Nan.我的代码如下,我想知道它是否正确:

 #define PLUS_INFINITE          (1.0f/0.0f)
 #define MINUS_INFINITE         (-1.0f/0.0f)
 #define NAN                    (0.0f/0.0f)

 float Local_Var;
 /*F is a float numnber.*/
 if((unsigned long)(F) == 0x7f800000ul)
   {
    Local_Var = PLUS_INFINITE;
   }
 elseif((unsigned long)(F) == 0xff800000ul)
   {
    Local_Var = MINUS_INFINITE;
   }
   /*fraction = anything except all 0 bits (since all 0 bits represents infinity).*/
 elseif((((unsigned long)(F) & 0x007ffffful) != 0ul )
         &&((unsigned long)(F) == 0x7f800000ul))
        || 
        (((unsigned long)(F) & 0x807ffffful) != 0ul )
        &&
        ((unsigned long)(F) == 0xff800000ul))
   {
    Local_Var = NAN; 
   } …
Run Code Online (Sandbox Code Playgroud)

c

4
推荐指数
1
解决办法
7228
查看次数

没有分数部分的浮点数据

我们补充说,double和float数据之间存在差异f.但是当我试着写:

float Value = 255f;
Run Code Online (Sandbox Code Playgroud)

编译器显示以下错误:

  line 50: error (dcc:1633): parse error  near 'f'                    
  line 50: error (dcc:1206): syntax error                             
  line 50: fatal error (dcc:1340): can't recover from earlier errors  
Run Code Online (Sandbox Code Playgroud)

为什么?

c types

2
推荐指数
1
解决办法
368
查看次数

C中的结构定义

我想通过以下方式定义结构:

typedef struct Info_s
{
 uint8   Size;
 uint8   Address;
 uint8   Pattern[Size];    
}Info_t;
Run Code Online (Sandbox Code Playgroud)

您可以注意到数组Pattern的大小是"Size",它在同一结构中首先声明.

那是对的吗?

c arrays structure definition

0
推荐指数
1
解决办法
80
查看次数

标签 统计

c ×3

arrays ×1

definition ×1

structure ×1

types ×1