使用的好坏【百家了乐八大技巧】,函数调用时参数传入的顺序

 百家乐概况     |      2020-03-31 09:28

在函数的调用时需要注意参数的传入的顺序.我可以给一个例子:
#include<stdio.h>
#include<conio.h>
int main(void)
{
  int i=0;
  clrscr();
  printf("%d,%d",i++,i++);
  getch();
  return 0;
}
printf()函数是我们在编程时用得比较多的函数.大家不妨运行一下,得出程序的结果.(结果在此不予给出)
从结果可以看出参数的传递相当于:printf("%d,%d",1,0);也就是说先从最后一个参数开始传递.
可以得出程序中printf()的执行过程:printf("%d,%d",i++,i++);/*这时i==0*/开始从最后一个参数传递==>>
printf("%d,%d",i++,0);/*这时i==1*/然后传递第二个参数==>>printf("%d,%d",1,0);/*这时i==2*/==>>参数传递完毕.

在TC2.0下编程,不要为了省麻烦,在程序的开头以#define NULL 0 来代替#include<stdio.h>.
我不是说这种方法不好,反而我认为用到非常妙,因为在程序中可以减少不必要的外部函数的连接,从而减少程序的负担.
但是,用#define NULL 0也得有下前提,就是编译器的模式(Model)是Tiny,Small,Medium.
那么为什么在Compact,Large,Huge下不行呢.
我举一例子,代码如下:
#include<stdio.h>
#include<conio.h>
int main(void)
{
  clrscr();
  printf("%d",sizeof(int*));
  getch();
  return 0;
}
如果在模式(Model)为Tiny,Small,Medium,结果是:2
如果在模式(Model)为Compact,Large,Huge,结果是:4
现在大家有些眉目了吧.
如果还不太明白,不要紧我再给出一个例了:
在模式为Large时:
#define NULL 0
#include<conio.h>
int main(void)
{
  clrscr();
  printf("%d",sizeof(NULL));
  getch();
  return 0;
}
结果:2
#include<stdio.h>
#include<conio.h>
int main(void)
{
  clrscr();
  printf("%d",sizeof(NULL));
  getch();
  return 0;
}
结果:4