C语言程序开发不像 Python,若是需要使用变量,必须先定义。仔细想一想,C语言这么要求的原因也是容易理解的,至少C程序可以事先知道需要为该变量分配多少内存,这其实也是C语言程序更可控的原因之一。
这其实也是C语言程序更可控的原因之一
C语言程序的变量
虽然“定义再使用”目的是为了使用更小的开销,实现更高的效率,但是很多程序员仍然将它看作是一种落后低效的特性。就代码编写而言的确如此,这增加了整个代码的复杂度。
特别是在 C89 时代,C语言程序员在定义变量时,必须将所有变量定义在语句的开头。下面这段C语言代码是非法的:
printf("hello \n");
int i = 3;
printf("i= %d\n", i);
强制所有变量语句的开头定义是非常反人类的做法——若是某个C语言代码块使用的变量稍多,很难写出易读的代码。因此C99抛弃了这种限制,允许程序员混合语句和变量定义表达式。这样一来,我们可以将要使用的变量定义在附近,写出更加简洁易读的C语言代码:
int i;
fun1(&i);
...
float f;
fun2(&f);