大家好,请教一下,单片机C语言,请问函数内改变实参是否合法?
代码和运行结果如下图,运行结果是正确的,都说函数内是无法更改实参的,但是这个运行结果,却显示,在函数内,实参已经发生了变化,当然,函数结束后,实参还是没有变化。
请教一下,像这种语法,是否合法?是否要在函数内定义一个变量:
unsigned char dat2=dat;
然后在函数内操作 dat2,这样才更稳妥?或者说定义 dat2 完全是画蛇添足?
- #include <stdio.h>
- unsigned char count;
- void test(unsigned char dat)
- {
- while(dat--)
- {
- printf("dat=0x%X\n", dat);
- }
- }
- int main(void)
- {
- count=8;
- test(count);
- printf("count=0x%X\n", count);
- }
|