[关闭]
@yanglt7 2018-08-06T00:10:39.000000Z 字数 2900 阅读 1317

第11周:全局变量、编译预处理和宏、大程序结构

C


11.1.1 全局变量:全局变量

全局变量

  1. #include <stdio.h>
  2. int f(void);
  3. int gAll = 12;
  4. int main(int argc, char const *argv[])
  5. {
  6. printf("in %s gAll=%d\n", __func__, gAll);
  7. f();
  8. printf("agn in %s gAll=%d\n", __func__, gAll);
  9. return 0;
  10. }
  11. int f(void)
  12. {
  13. printf("in %s gAll=%d\n", __func__, gAll);
  14. gAll += 2;
  15. printf("agn in %s gAll=%d\n", __func__, gAll);
  16. return gAll;
  17. }
  18. in main gAll=12
  19. in f gAll=12
  20. agn in f gAll=14
  21. agn in main gAll=14

全局变量初始化

被隐藏的全局变量

11.1.2 全局变量:静态本地变量

静态本地变量

11.1.3 全局变量:后记

*返回指针的函数

tips

11.2.1 编译预处理和宏:宏定义

编译预处理指令

define

没有值的宏

预定义的宏

11.2.2 编译预处理和宏:带参数的宏

像函数的宏

错误定义的宏

带参数的宏的规则

带参数的宏

分号?

  1. #define PRETTYPRINTmsgprintf(msg);×
  2. if(n<10)
  3. PRETTY_PRINT("n is less than 10");×
  4. else
  5. PRETTY_PRINT("n is at least 10");×

带参数的宏

11.3.1 大程序文件:多个源代码文件

多个.c文件

项目

编译单元

11.3.2 大程序文件:头文件

头文件

" " 还是 < >

#include的误区

头文件

不对外公开的函数

11.3.3 大程序文件:声明

变量的声明

声明和定义

头文件

重复声明

标准头文件结构

  1. #ifndef __LIST_HEAD__
  2. #define __LIST_HEAD__
  3. #include "node.h"
  4. typedef struct _list {
  5. Node* head;
  6. Node* tail;
  7. } List;
  8. #endif
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注