奇葩001
2015-07-25 09:36
375 查看
#include<iostream> template<size_t len> struct __byteArr { char arr[len+1]; }; template<typename ldType,size_t lenA,size_t lenB> __byteArr<lenB> __funDecl(ldType, __byteArr<lenA>,__byteArr<lenB>); #define counter_read(id) \ (sizeof __funDecl(id(),__byteArr<0x01>(), __byteArr< \ (sizeof __funDecl(id(),__byteArr<0x02>(), __byteArr< \ (sizeof __funDecl(id(),__byteArr<0x04>(), __byteArr< \ (sizeof __funDecl(id(),__byteArr<0x08>(), __byteArr< \ (sizeof __funDecl(id(),__byteArr<0x10>(), __byteArr< \ (sizeof __funDecl(id(),__byteArr<0x20>(), __byteArr<0>()) - 1 ) \ >()) - 1 ) \ >()) - 1 ) \ >()) - 1 ) \ >()) - 1 ) \ >()) - 1 ) #define counter_inc(id) \ __byteArr<counter_read(id) + 1> \ __funDecl(id, __byteArr<(counter_read(id) + 1) & ~counter_read(id)>, \ __byteArr<(counter_read(id) + 1) & counter_read(id)>) struct idType {}; //#define mmm case counter_read(idType); counter_inc(idType); #define num counter_read(idType) #define numAdd counter_inc(idType) numAdd; char a[num]; numAdd; char b[num]; numAdd; char c[num]; using namespace std; int main() { cout<<sizeof a<<endl; cout<<sizeof b<<endl; cout<<sizeof c<<endl; return 0; }
相关文章推荐
- C#调用Rar文件及获取Rar返回值的方法
- linux 命令总结
- Cygwin-Cygwin ssh Connection closed by ::1 出错
- leetCode 86.Partition List(分区链表) 解题思路和方法
- 暑假学习随笔2
- mysql如何将一个表导出为excel表格
- Linux部署ASP.NET 5 (vNext)
- 动态规划,而已! CodeForces 433B - Kuriyama Mirai's Stones
- C#群发邮件
- 暑假学习随笔2
- C语言中.h和.c文件解析
- Xamarin.Android开发实践(五)
- nyoj 122Triangular Sums
- Timus Online Judge 1057. Amount of Degrees(数位dp)
- linux 查看网卡是否有网线连接
- Xamarin.Android开发实践(四)
- 献给杭电五十周年校庆的礼物
- HDU 1754(线段树区间最值)
- Python 异常
- poj 2594 二分图最大独立集