sizeof我没用过的用法

sizeof i,我还是第一次看到的用法

sizeof有三种语法形式,如下:
  1) sizeof( object ); // sizeof( 对象 );
  2) sizeof( type_name ); // sizeof( 类型 );
  3) sizeof object; // sizeof 对象;
  所以,
  int i;
  sizeof( i ); // ok
  sizeof i; // ok
  sizeof( int ); // ok
  sizeof int; // error

得到一个数值类型所对应的字符串缓冲大小
#define _TYPE_BUF_SIZE(type) sizeof #type
#define TYPE_BUF_SIZE(type) _TYPE_BUF_SIZE(type)
char buf[TYPE_BUF_SIZE(INT_MAX)];
--> char buf[_TYPE_BUF_SIZE(0x7fffffff)];
--> char buf[sizeof "0x7fffffff"];
这里相当于:
char buf[11];

http://bluefish.blog.51cto.com/214870/65392
http://baike.baidu.com/view/1078660.htm

原文地址:https://www.cnblogs.com/moonflow/p/2636750.html