首页 文章

将本机数据类型初始化为“零”[保持]的常规操作

提问于
浏览
-4

C 中,您有许多数据类型......并且所有这些数据类型都有不同的零初始化程序...示例

int i = 0;
float f = 0.0;
const char *str = NULL;
struct myStruct *myS = NULL;
long l = 0L;

等等,我现在要求 ZERO 初始化程序将所有内容设置为 NULL0… . 上面的例子看起来像......

int i = ZERO;
float f = ZERO;
const char *str = ZERO;
struct myStruct *myS = ZERO;
long l = ZERO;

如果你写一个类似的宏,这将是有用的...

#define highREAD(T,TT,TTT) { \                                                                                     
  TT val = ZERO; \                                                                                                 
  MqErrorCheck(MqRead##T(mqctx,&val)); \                                                                           
  LngErrorCheck(PyList_Append(RET, TTT)) \                                                                         
  break; \                                                                                                         
}

使用数据类型作为宏参数的一部分...

谢谢 .

1 回答

  • 3

    这个 ZERO 可以简单地 0 .

    int i = 0;                // No explanation needed
    float f = 0;              // Floating point conversion, exact and well defined.
    const char *str = 0;      // 0 is a null pointer constant (1)
    struct myStruct *myS = 0; // Same as above
    long l = 0;               // Integral conversion
    

    实例


    (1) - 值为0的整型常量表达式,或者类型为void *的表达式,称为空指针常量 . [n1570]

相关问题