C语言不同的存储类型 C语言全局变量 C语言随机数函数 C语言不同的存储类型 // parta.c --- various storage classes // compile with partb.c #include <stdio.h> void report_count(); void accumulate(int k); int count = 0; // file scope, external linkage int main(void) { int value; // automatic variable register int i; // register variable printf("Enter a positive integer (0 to quit): "); while (scanf("%d", &value) == 1 && value > 0) { ++count; // use file scope variable for (i = value; i >= 0; i--) accumulate(i); printf("Enter a positive integer (0 to quit): "); } report_count(); return 0; } void report_count() { printf("Loop executed %d times\n", count); } partb // partb.c -- rest of the program // compile with parta.c #include <stdio.h> extern int count; // reference declaration, external linkage static int total = 0; // static definition, internal linkage void accumulate(int k); // prototype void accumulate(int k) // k has block scope, no linkage { static int subtotal = 0; // static, no linkage if (k <= 0) { printf("loop cycle: %d\n", count); printf("subtotal: %d; total: %d\n", subtotal, total); subtotal = 0; } else { subtotal += k; total += k; } } C语言全局变量 C语言随机数函数