一. typedef用法详解
1. 功能概述:
typedef关键字可以用于为已经存在的数据类型定义一个新的别名,目的是使数据类型的名称更容易被理解,也可以提高代码的可读性和可维护性
#include <stdio.h>
typedef unsigned int unit;
typedef struct Node {
int a;
int b;
}Node;
int main()
{
unsigned int num1;
unit num2; //
struct Node n1;
Node n2; //
}
二. define用法详解
1. 定义标识符常量
#define NUM 100
2. 定义宏
#define ADD(x, y) ((x) + (y))
1. 这里ADD是宏名
2. (x,y) 是宏参数
3. ((x) + (y))是宏体
三. static详解
1. static修饰局部变量
static 修饰的变量会保存到静态区, 并且变量只会被创建一次, 声明周期和程序的声明周期一样长, 但是作用范围依然是其所在的代码块内.
void add(int a) {
int count = 0; // 普通局部变量
static int sum = 0; // 静态局部变量
count++; // 每次调用函数时都会初始化,不同调用之间互不影响
sum += a; // 只在第一次调用函数时初始化,之后每次调用时都会保持上一次的结果
printf("Count: %d, Sum: %d\n", count, sum);
}
int main() {
add(3); //Count: 1, Sum: 3
add(4); //Count: 1, Sum: 7
add(5); //Count: 1, Sum: 12
return 0;
}
2. static 修饰全局变量
static修饰全局变量的时候, 这个全局变量的外部连接属性, 就变成了内部链接属性, 其他源文件就不能再用到这个全局变量了.
static修饰全局变量依然存储在静态区.
/*
另外,使用static修饰的全局变量在程序启动时会被初始化为0,和未被赋初值的普通全
局变量不同。需要注意的是,在C++中,如果一个全局变量被static修饰,那么在另一个
文件中声明一个同名的全局变量是完全合法的,这两个变量是不同的,互相独立。但在C
中,同名的全局变量会被认为是同一个变量,其余文件中的声明会被忽略。因此,在C中,
一般会将使用static修饰的全局变量放到单独的源文件或者头文件中,并在该文件中做出
定义,以便使用该变量的其他文件引用。
*/
3. static 修饰函数
标签:语法,typedef,int,生疏,add,static,修饰,全局变量 From: https://blog.51cto.com/u_16120559/6317902static修饰函数也是关闭函数的外部链接属性.