- 论坛徽章:
- 0
|
本帖最后由 鬼鬼一哈 于 2014-04-20 06:58 编辑
- #include <stddef.h>
- #include <stdio.h>
- #include <string.h>
- #include <unistd.h>
- #define TRACE_NULL 0x0000
- #define TRACE_DEBUG 0x0001
- #define TRACE_INFO 0x0002
- #define TRACE_ERROR 0x0004
- struct test_struct {
- unsigned int a;
- unsigned int b;
- };
- #define dump(resrc, level, fmt, args, ...) \
- do{\
- printf("2.0 resource: %p\n", resrc);\
- struct test_struct *Presource = (struct test_struct *)resrc ;\
- printf("3.0 resource: %p, %d\n", Presource, Presource->a);\
- \
- if (level) {\
- printf("4.0 (func:%s line:%4d):"fmt"", __func__, __LINE__,#args);\
- }\
- }while(0)
- int main() {
- struct test_struct resource;
- resource.a = 10;
- resource.b = 20;
-
- printf("1.0 resource: %p, %d\n", &resource, resource.b);
- dump(&resource, TRACE_DEBUG, "resource: %d\n", resource.b);
-
- }
复制代码 执行结果为:
1.0 resource: 0xbfbdd084, 20
2.0 resource: 0xbfbdd084
3.0 resource: 0xbfbdd084, 10
4.0 (func:main line: 37):resource: 134514094 错误在哪里呢? |
|