编程语言
首页 > 编程语言> > 程序结构

程序结构

作者:互联网

 

全局变量

 

1. 全局变量

  1. 它们与任何函数都⽆关
  2. 在任何函数内部都可以使⽤它们

 

2. 全局变量初始化

  1. 指针会得到NULL值

 

 

3. 被隐藏的全局变量

如果函数内部存在与全局变量同名的变量,则全局变 量被隐藏

 

4. 静态本地变量

 

 

5. *返回指针的函数

 

6. tips

  1. 丰⽥汽⻋的案⼦

 

 

 

1.编译预处理指令

#开头的是编译预处理指令

它们不是C语⾔的成分,但是C语⾔程序离不开它们

#define⽤来定义⼀个宏

 

2.#define

  1. 完全的⽂本替换

 

3. 宏

 

4.没有值的宏

#define _DEBUG

这类宏是⽤于条件编译的,后⾯有其他的编译预处理 指令来检查这个宏是否已经被定义过了

 

 

5. 预定义的宏

__LINE__

__FILE__

__DATE__

__TIME__

__STDC__

 

 

6.带参数的宏

 

7.像函数的宏

 

 

8.错误定义的宏

 

 

9.带参数的宏的原则

  1. 整个值要括号
  2. 参数出现的每个地⽅都要括号

 

 

10. 带参数的宏

  1. #define MIN(a,b) ((a)>(b)?(b):(a))

 

11. 分号?

#define PRETTY_PRINT(msg) printf(msg);

if (n < 10)

PRETTY_PRINT("n is less than 10");

else

PRETTY_PRINT("n is at least 10");

 

 

12. 带参数的宏

  1. 在#和##这两个运算符的帮助下

 

 

13. 其他编译预处理指令

条件编译

error

....

 

 

 

 

⼤程序

 

1.多个.c⽂件

 

 

2.编译单元

 

 

3.项目

 

4.头⽂件

把函数原型放到⼀个头⽂件(以.h结尾)中,在需要 调⽤这个函数的源代码⽂件(.c⽂件)中#include这 个头⽂件,就能让编译器在编译的时候知道函数的原 型

 

 

 

5. 函数原型

 

 

 

6.#include

 

 

7. “”还是<>

  1. “”要求编译器⾸先在当前⺫录(.c⽂件所在的⺫录) 寻找这个⽂件,如果没有,到编译器指定的⺫录去 找
  2. <>让编译器只在指定的⺫录去找

 

 

 

8. 头⽂件

 

 

 

9.不对外公开的函数

 

 

10. 变量的声明

 

 

 

11.声明和定义

  1. 函数原型 
  2. 变量声明 
  3. 结构声明 
  4. 宏声明 
  5. 枚举声明 
  6. 类型声明 
  7. inline函数 

 

 

12. 头⽂件

  1. 是规则不是法律 
  2. 否则会造成⼀个项⺫中多个编译单元⾥有重名的实体 

 

 

13.重复声明

 

 

14.标准头⽂件结构

 

 

 

 

15. *前向声明

因为在这个地⽅不需要具体知道Node 是怎样的,所以可以⽤struct Node来 告诉编译器Node是⼀个结构

 

标签:__,函数,程序结构,编译,编译器,全局变量,define
来源: https://www.cnblogs.com/hechunfeng/p/15647939.html