gauss 发表于 2014-10-3 22:16:54

问一些变量的问题

不知道大家在学windows编程时有没有发现变量用的很奇怪?
// Set vertical scroll bar range and page size
si.cbSize = sizeof (si) ;
si.fMask = SIF_RANGE | SIF_PAGE ;
si.nMin = 0 ;
si.nMax = NUMLINES - 1 ;
si.nPage = cyClient / cyChar ;
SetScrollInfo (hwnd, SB_VERT, &si, TRUE) ;
// Set horizontal scroll bar range and page size
si.cbSize = sizeof (si) ;
si.fMask = SIF_RANGE | SIF_PAGE ;
si.nMin = 0 ;
si.nMax = 2 + iMaxWidth / cxChar ;
si.nPage = cxClient / cxChar ;


大家仔细看,si变量被两次赋值了,按照C的理解,前一次赋值是被覆盖了吧,但是后面的程序又可以获得设置vertical scroll的参数,大家可以翻一翻程序,有很多地方,一个变量被先后覆盖值,但用得没有冲突?希望有大牛解释一下。。。

仰望天上的光 发表于 2014-10-4 12:38:49

//一堆设置结构体si的代码
//...
SetScrollInfo (hwnd, SB_VERT, &si, TRUE) ;//以上设置代码全部都是为了这个函数的调用
                                                                  //调用完si就没用了
//又是一堆设置结构体si的代码
//...
SetScrollInfo (hwnd, SB_VERT, &si, TRUE) ;//以上设置代码全部都是为了这个函数的调用
                                                                  //调用完si就没用了

大个的糖果 发表于 2014-11-1 04:26:32

风之残月 发表于 2014-11-8 22:24:44

的确只需写一次就可以了,不过si.nMax 和 si.nPage 要更改,因为两次调用用的这两个值不同

智商是硬伤 发表于 2015-8-14 09:57:14

把问题求助顶起来{:7_146:}
页: [1]
查看完整版本: 问一些变量的问题