【学习笔记之我要C】初识常见关键字、#define定义常量和宏

简介: 【学习笔记之我要C】初识常见关键字、#define定义常量和宏

一、初识常见关键字

C语言关键字

1.C语言提供的,不能自己创建关键字;

2.变量名不能是关键字。

常见的关键字:

auto,break,case,char,const,continue,default,do,double,else,enum,extern,float,for,goto,if,int,long,register,return,short,signed,unsigned,sizeof,static,struct,switch,typedef,union,void,volatile,while。


auto:是自动的,每个局部变量都是auto的;

extern:用来声明外部符号;

register:寄存器关键字,大量、频繁被使用的数据可以放在寄存器中,提升效率;

union:联合体(共用体)

typedef:类型的重定义/类型重命名。

//typedef 类型重定义(类型重命名)
typedef unsigned int u_int;
int main() {
  //下面两行代码效果一样
  unsigned int num = 100;
  u_int num2 = 100;
  return 0;
}

static:静态的;

1.static修饰局部变量,改变了局部变量的生命周期(本质上是改变了存储类型);

2.static修饰全局变量,使得这个全局变量只能自己的源文件(.c)内部可以使用,其他源文件不能使用;

全局变量在其他源文件内部可以被使用,是因为全局变量具有外部链接属性,但是被static修饰之后,其他源文件就不能链接到这个静态的全局变量了。

3.static修饰函数,使得函数只能被自己所在的源文件内部使用,不能在其他源文件内部使用,本质上static是将函数的外部链接属性变成了内部链接属性(和static修饰全局变量一样)

2665c69f11de4e23a6e348d1817c7138.png

d316c9f5d07647b29c4b166b5417f011.png


注:内存基本会化为3个区域:栈区、堆区、静态区

1.栈区:局部变量,函数的参数;

2.堆区:动态内存分配;

3.静态区:全局变量,static修饰的静态变量。

二、#define定义常量和宏

define和include都是预处理指令

//define定义常量
#define MAX 1000
//define定义宏
#define ADD(x, y) ((x)+(y))
int main() {
  printf("%d\n", MAX);
  printf("%d\n", ADD(2, 4));
  return 0;
}

ps:学习链接

https://www.bilibili.com/video/BV1cq4y1U7sg?p=1&vd_source=54ada085617a73e9210ec0c3d350a538

目录
相关文章
|
3月前
|
编译器 C语言 C++
什么是函数声明和定义
【10月更文挑战第19天】什么是函数声明和定义
123 0
|
5月前
|
存储 缓存 编译器
【关键字】——register在C语言中的使用
【关键字】——register在C语言中的使用
|
8月前
|
编译器 C语言
C语言宏定义(#define定义常量​、#define定义宏​、 带有副作用的宏参数、 宏替换的规则、 宏函数的对比)
C语言宏定义(#define定义常量​、#define定义宏​、 带有副作用的宏参数、 宏替换的规则、 宏函数的对比)
|
7月前
|
存储 C语言
C语言中的typedef关键字:为类型定义新名称
C语言中的typedef关键字:为类型定义新名称
120 0
|
8月前
|
编译器
关键字static#define 定义常量和宏
关键字static#define 定义常量和宏
51 0
|
8月前
|
程序员 C语言
在C语言中,typedef是一种用来创建新的数据类型名的关键字
在C语言中,typedef是一种用来创建新的数据类型名的关键字
76 0
|
8月前
#define定义常量和宏
#define定义常量和宏
48 0
|
8月前
|
编译器 C语言 C++
define与const关键字的多种用法
define与const关键字的多种用法
81 0
#define定义标识符以及定义宏
#define定义标识符以及定义宏
79 0
|
编译器
#define 定义常量和宏
工作机理:直接替换,以下列代码为例编译器直接将用到max的地方替换为100
74 0

热门文章

最新文章