int n = ((int) - 1);这样的运算是啥意思?
因为看到一个如下的定义
#define ASM_COUNT_INVALID ((asm_count_t) -1)
typedef int asm_count_t; /* number */
在CPP文件中使用 ASM_COUNT_INVALID 的时候,自然值就是 -1 了.
我想的话就是 int n = ((int) - 1);
这样的式子是什么意思?
谢谢!
问题点数:20、回复次数:5Top
1 楼uoyevoli(爱什么呢?www.FARPROC.com)回复于 2003-08-04 16:15:11 得分 0
帮你upTop
2 楼wancz(香格里拉)回复于 2003-08-04 16:19:53 得分 0
int n = ((int) - 1);
int的最大值-1,防止越界。Top
3 楼yndfcd(YNDFCD)回复于 2003-08-04 17:04:02 得分 20
C语言的强制类型转换将-1转换成asm_count_t类型,加括号的目的是防止宏替换时出错。
如
ASM_COUNT_INVALID*2,//如果没有外面的括号就会出错。
看来楼主没有学过C语言。Top
4 楼storein(满天星)回复于 2003-08-04 17:05:12 得分 0
又看见一个:
.h 文件中
typedef struct MyStruct {
int pbits[3];
} MyStruct_t;
typedef MyStruct_t MyStruct_2;
#define port MyStruct_2
.cpp文件中
port portReal;
portReal.pbits[0] = 1;
portReal.pbits[1] = 2;
portReal.pbits[2] = 3;
重点就是这句 : #define port MyStruct_2
为什么这样定义也行?Top
5 楼sunchaoyang1()回复于 2003-08-04 17:16:36 得分 0
大家快来帮忙啊!!!!!!!!
Top



