第十二章 全局变量、宏、大程序结构习题

it2023-07-19  66

第十二章 全局变量、宏、大程序结构习题

12-0、静态本地变量

#include <stdio.h> int f(void); int main(int argc, char const *argv[]) { f(); f(); f(); return 0; } int f(void) { static int all = 1;//静态本地变量,实际上是特殊的全局变量,即全局生存期,本地作用域 printf("in %s all=%d\n",__func__,all); all += 2; printf("agn %s all=%d\n",__func__,all); return all; }

12-1、编译预处理和宏

(1)编译预处理指令

(2)#define

(3)宏

#include <stdio.h> #define PI 3.14159 #define FORMAT "%f\n" #define PI2 2*PI // pi * 2 #define PRT printf("%f ",PI);\ printf("%f",PI2); int main(int argc, char const *argv[]) { printf(FORMAT,PI2*3.0); PRT; return 0; }

(4)预定义的宏

#include <stdio.h> /*__FILE__:文件名 __LINE__:行号 __DATE__:日期 __TIME__:时间*/ int main(int argc, char const *argv[]) { printf("%s:%d\n",__FILE__,__LINE__); printf("%s:%d\n",__DATE__,__TIME__); return 0; }

(5)带参数的宏

像函数的宏

#include <stdio.h> //注意宏定义不能加分号 #define cude(x) ((x)*(x)*(x)) int main(int argc, char const *argv[]) { int i=0; scanf("%d",&i); printf("%d\n",cude(i)); return 0; }

错误定义的宏

带参数宏的原则

12-2、大程序结构

(1)多个源代码文件

(2)#include误区

(3)" "与< >

用法:

max.h 自己建的头文件

全局变量的声明(extern)

写在头文件 max.h里

double max(double a, double b); extern int gall;//声明一个int型的全局变量gall

(4)标准头文件结构

最新回复(0)